|
//uses Main;
var Form1: TCLForm; ScaledLayout: TclScaledLayout; HeaderPnl, LogoLeftPnl, ActionRightPnl, PageTitlePnl, DividerPnl, SearchWrapPnl, SearchPnl, CountPnl, BottomMenuPnl: TclProPanel; TitleLbl, SubTitleLbl, PageTitleLbl, CountLbl: TclProLabel; SearchEdt: TclProEdit; ProfileBtn, ViewToggleBtn, LSummaryBtn, SearchBtn: TclProButton; NotifBtn: TclProImage; CatalogBtn, BorrowedBtn, QrBtn, MyListBtn, SettingsBtn: TclProButton; FiltersPnl: TclProPanel; FiltersScrollBox: TclHorzScrollBox; FilterAllBtn, FilterRomanBtn, FilterBilimBtn, FilterTarihBtn, FilterFelsefeBtn, FilterCocukBtn, FilterGelisimBtn: TclProButton; BooksScrollBox, DetailScrollBox: TclVertScrollBox; GlobalBookCount: Integer; GlobalNotifMsg: String; GlobalNotifCount: Integer;
GlobalViewMode: String; GlobalGridColCount: Integer; GlobalGridRowPnl: TclProPanel;
DetailOverlayPnl, DetailContentPnl, DetailHeaderPnl, DetailFooterPnl: TclProPanel; DetailTitleLbl, DetailAuthorLbl, DetailDescLbl: TclProLabel; DetailCloseBtn, DetailFavBtn, DetailBorrowBtn: TclProButton;
AlertOverlayPnl, AlertBoxPnl: TclProPanel; AlertMsgLbl: TclProLabel; AlertOkBtn: TclProButton;
GlobalActionTimer, OpenDetailTimer: TclTimer; GlobalActionType, GlobalSelectedBookID, GlobalFilterGenre: String; GlobalCurrentStock: Integer; GlobalBooksList: TclStringList;
void GoToBorrowed; { Clomosy.RunUnit('uOdunc'); } void GoToQR; { Clomosy.RunUnit('uQR'); } void GoToListe; { Clomosy.RunUnit('uListe'); } void GoToSettings; { Clomosy.RunUnit('uAyarlar'); }
void CloseDetail; { DetailOverlayPnl.Visible = False; DetailContentPnl.Visible = False; }
void ToggleViewMode; var clRest: TclRest; jsonBody: String; { if (GlobalViewMode == 'list') GlobalViewMode = 'grid'; else GlobalViewMode = 'list'; if (Clomosy.GlobalVariableString <> '') { clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/settings/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/settings/ '+Clomosy.GlobalVariableString+'/viewMode.json'; clRest.Method = rmPUT; clRest.Accept = 'application/json'; jsonBody = '"' + GlobalViewMode + '"'; clRest.AddBody(jsonBody, 'application/json'); clRest.Execute; clRest.Free; } Clomosy.RunUnit('uKatalog'); }
void SendNotification(AUser: String; AMsg: String); var clRest: TclRest; notifID, jsonBody: String; { notifID = FormatDateTime('yymmddhhnnsszzz', Now); clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/notifications/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/notifications/ ' + AUser + '/' + notifID + '.json'; clRest.Method = rmPUT; clRest.Accept = 'application/json'; jsonBody = '{"msg":"' + AMsg + '"}'; clRest.AddBody(jsonBody, 'application/json'); clRest.Execute; clRest.Free; if (AUser == Clomosy.GlobalVariableString) { GlobalNotifCount = GlobalNotifCount + 1; GlobalNotifMsg = GlobalNotifMsg + '- ' + AMsg + #13#10; if (NotifBtn <> nil) { NotifBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D81B60'); NotifBtn.SetclProSettings(NotifBtn.clProSettings); } } }
void UpdateModalButtonsStatus(ABookID: String); var clRest: TclRest; bData, currentUser, bookStr, stockStr: String; pStart, pEnd, totalStock: Integer; userAlreadyBorrowed: Boolean; { currentUser = Clomosy.GlobalVariableString; DetailBorrowBtn.Text = 'Ödünç Al'; DetailBorrowBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); DetailBorrowBtn.Enabled = True; DetailBorrowBtn.SetclProSettings(DetailBorrowBtn.clProSettings); DetailFavBtn.Text = 'Listeme Ekle'; DetailFavBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); DetailFavBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); DetailFavBtn.clProSettings.BorderWidth = 0; DetailFavBtn.SetclProSettings(DetailFavBtn.clProSettings); if (currentUser == '') Exit; clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/books/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/books/ ' + ABookID + '.json'; clRest.Method = rmGET; clRest.Execute; bookStr = clRest.Response; clRest.Free; totalStock = 0; if ((bookStr <> 'null') && (bookStr <> '') && (bookStr <> '{}')) { pStart = Pos('"stock":"', bookStr); if (pStart > 0) { pStart = pStart + 9; pEnd = Pos('"', Copy(bookStr, pStart, Length(bookStr))); stockStr = Copy(bookStr, pStart, pEnd - 1); if (stockStr <> '') totalStock = StrToIntDef(stockStr, 0); } } GlobalCurrentStock = totalStock; clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/borrowed/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/borrowed/ ' + ABookID + '.json'; clRest.Method = rmGET; clRest.Execute; bData = clRest.Response; clRest.Free; userAlreadyBorrowed = False; if ((bData <> 'null') && (bData <> '') && (bData <> '{}')) { if (Pos('"' + currentUser + '"', bData) > 0) userAlreadyBorrowed = True; } if (userAlreadyBorrowed) { DetailBorrowBtn.Text = 'Zaten Ödünç Aldınız'; DetailBorrowBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50'); DetailBorrowBtn.Enabled = False; DetailBorrowBtn.SetclProSettings(DetailBorrowBtn.clProSettings); } else if (totalStock <= 0) { DetailBorrowBtn.Text = 'Stokta Yok'; DetailBorrowBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#888888'); DetailBorrowBtn.Enabled = False; DetailBorrowBtn.SetclProSettings(DetailBorrowBtn.clProSettings); } clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/favorites/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/favorites/ ' + currentUser + '/' + ABookID + '.json'; clRest.Method = rmGET; clRest.Execute; bData = clRest.Response; clRest.Free; if ((bData <> 'null') && (bData <> '') && (bData <> '{}')) { DetailFavBtn.Text = 'Listemde (Çıkar)'; DetailFavBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); DetailFavBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#D81B60'); DetailFavBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D81B60'); DetailFavBtn.clProSettings.BorderWidth = 1; DetailFavBtn.SetclProSettings(DetailFavBtn.clProSettings); } }
void BorrowBookClick; var currentUser: String; { if (DetailBorrowBtn.Text <> 'Ödünç Al') Exit; currentUser = Clomosy.GlobalVariableString; if (currentUser == '') { ShowMessage('Lütfen giriş yapın.'); Exit; } GlobalActionType = 'BORROW'; Form1.FormWaiting.Visible = True; GlobalActionTimer.Enabled = True; }
void FavBookClick; var currentUser: String; { currentUser = Clomosy.GlobalVariableString; if (currentUser == '') { ShowMessage('Lütfen giriş yapın.'); Exit; } if (DetailFavBtn.Text == 'Listeme Ekle') GlobalActionType = 'ADD_FAV'; else GlobalActionType = 'DEL_FAV'; Form1.FormWaiting.Visible = True; GlobalActionTimer.Enabled = True; }
void OnOpenDetailTimer; var SourceTitleLbl, SourceAuthorLbl, SourceSummaryLbl, SourceUrlLbl, SourceGenreLbl: TclProLabel; clRestCache: TclRest; jsonBody, bCoverUrl: String; { OpenDetailTimer.Enabled = False; SourceTitleLbl = TclProLabel(Form1.clFindComponent('Title_' + GlobalSelectedBookID)); SourceAuthorLbl = TclProLabel(Form1.clFindComponent('Author_' + GlobalSelectedBookID)); SourceSummaryLbl = TclProLabel(Form1.clFindComponent('Desc_' + GlobalSelectedBookID)); SourceUrlLbl = TclProLabel(Form1.clFindComponent('CoverUrl_' + GlobalSelectedBookID)); SourceGenreLbl = TclProLabel(Form1.clFindComponent('Genre_' + GlobalSelectedBookID));
if (SourceTitleLbl <> nil) DetailTitleLbl.Text = SourceTitleLbl.Text; if (SourceAuthorLbl <> nil) DetailAuthorLbl.Text = SourceAuthorLbl.Text; if (SourceSummaryLbl <> nil) DetailDescLbl.Text = SourceSummaryLbl.Text; else DetailDescLbl.Text = 'Bu kitap için özet bilgisi bulunamadı.'; bCoverUrl = ''; if (SourceUrlLbl <> nil) bCoverUrl = SourceUrlLbl.Text; if ((GlobalSelectedBookID <> '') && (Pos('OL', GlobalSelectedBookID) > 0)) { clRestCache = TclRest.Create; clRestCache.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/books/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/books/ '+GlobalSelectedBookID+'.json'; clRestCache.Method = rmGET; clRestCache.Execute; // Kitap veritabanında yoksa YENİ EKLE if ((clRestCache.Response == 'null') || (clRestCache.Response == '') || (clRestCache.Response == '{}')) { clRestCache.Free; clRestCache = TclRest.Create; clRestCache.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/books/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/books/ '+GlobalSelectedBookID+'.json'; clRestCache.Method = rmPUT; clRestCache.Accept = 'application/json'; // BURAYA YENİ KİTAPLAR İÇİN "stock":"0" BİLGİSİ EKLENDİ jsonBody = '{"id":"'+GlobalSelectedBookID+'", "title":"'+DetailTitleLbl.Text+'", "author":"'+DetailAuthorLbl.Text+'", "color":"#2E4053", "summary":"OpenLibrary API Kaydı", "cover":"'+bCoverUrl+'", "genre":"'+SourceGenreLbl.Text+'", "stock":"0"}'; clRestCache.AddBody(jsonBody, 'application/json'); clRestCache.Execute; clRestCache.Free; } else { clRestCache.Free; } } // Modal butonlarını güncelle (Eğer stok 0 ise "Stokta Yok" diyecektir) if (GlobalSelectedBookID <> '') UpdateModalButtonsStatus(GlobalSelectedBookID); DetailOverlayPnl.Visible = True; DetailContentPnl.Visible = True; DetailContentPnl.BringToFront; Form1.FormWaiting.Visible = False; }
void OpenDetail; var ClickedPnl: TclProPanel; { ClickedPnl = TclProPanel(Form1.clSender); GlobalSelectedBookID = ClickedPnl.clTagStr; DetailContentPnl.clTagStr = GlobalSelectedBookID; Form1.FormWaiting.Visible = True; OpenDetailTimer.Enabled = True; }
void CreateBookCard(AID: String; ATitle: String; AAuthor: String; ARating: String; AColor: String; ASummary: String; ACoverUrl: String; AGenre: String); var LCardPnl, LCoverPnl, LInfoPnl: TclProPanel; LTitleLbl, LAuthorLbl, LRatingLbl, LSummaryLbl, LUrlLbl, LGenreLbl: TclProLabel; LCoverImg: TclProImage; { if (GlobalViewMode == 'grid') { if (GlobalGridColCount == 0) { GlobalGridRowPnl = Form1.AddNewProPanel(BooksScrollBox, 'GridRow_' + AID); GlobalGridRowPnl.Align = alTop; GlobalGridRowPnl.Height = 160; GlobalGridRowPnl.Margins.Left = 10; GlobalGridRowPnl.Margins.Right = 10; GlobalGridRowPnl.Margins.Top = 10; GlobalGridRowPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); GlobalGridRowPnl.SetclProSettings(GlobalGridRowPnl.clProSettings); } LCardPnl = Form1.AddNewProPanel(GlobalGridRowPnl, 'Card_' + AID); LCardPnl.Align = alLeft; LCardPnl.Width = 100; LCardPnl.Margins.Left = 5; LCardPnl.Margins.Right = 5; LCardPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); LCardPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E2DED5'); LCardPnl.clProSettings.BorderWidth = 1; LCardPnl.clProSettings.RoundHeight = 8; LCardPnl.clProSettings.RoundWidth = 8; LCardPnl.SetclProSettings(LCardPnl.clProSettings); LCardPnl.clTagStr = AID; Form1.AddNewEvent(LCardPnl, tbeOnClick, 'OpenDetail'); LUrlLbl = Form1.AddNewProLabel(LCardPnl, 'CoverUrl_' + AID, ACoverUrl); LUrlLbl.Visible = False; LSummaryLbl = Form1.AddNewProLabel(LCardPnl, 'Desc_' + AID, ASummary); LSummaryLbl.Visible = False; LGenreLbl = Form1.AddNewProLabel(LCardPnl, 'Genre_' + AID, AGenre); LGenreLbl.Visible = False; LAuthorLbl = Form1.AddNewProLabel(LCardPnl, 'Author_' + AID, AAuthor); LAuthorLbl.Visible = False;
LCoverPnl = Form1.AddNewProPanel(LCardPnl, 'Cover_' + AID); LCoverPnl.Align = alTop; LCoverPnl.Height = 100; LCoverPnl.Margins.Left = 5; LCoverPnl.Margins.Top = 5; LCoverPnl.Margins.Right = 5; LCoverPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(AColor); LCoverPnl.clProSettings.RoundHeight = 5; LCoverPnl.clProSettings.RoundWidth = 5; LCoverPnl.SetclProSettings(LCoverPnl.clProSettings); LCoverPnl.clTagStr = AID; Form1.AddNewEvent(LCoverPnl, tbeOnClick, 'OpenDetail'); if (ACoverUrl <> '') { LCoverImg = Form1.AddNewProImage(LCoverPnl, 'CoverImg_' + AID); LCoverImg.Align = alClient; LCoverImg.Margins.Left = 2; LCoverImg.Margins.Right = 2; LCoverImg.Margins.Top = 2; LCoverImg.Margins.Bottom = 2; LCoverImg.clProSettings.PictureSource = ACoverUrl; LCoverImg.clProSettings.PictureAutoFit = True; LCoverImg.SetclProSettings(LCoverImg.clProSettings); LCoverImg.clTagStr = AID; Form1.AddNewEvent(LCoverImg, tbeOnClick, 'OpenDetail'); } LTitleLbl = Form1.AddNewProLabel(LCardPnl, 'Title_' + AID, ATitle); LTitleLbl.Align = alBottom; LTitleLbl.Height = 40; LTitleLbl.Margins.Left = 5; LTitleLbl.Margins.Right = 5; LTitleLbl.Margins.Bottom = 5; LTitleLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#002B36'); LTitleLbl.clProSettings.FontSize = 11; LTitleLbl.clProSettings.TextSettings.Font.Style = [fsBold]; LTitleLbl.clProSettings.WordWrap = True; LTitleLbl.SetclProSettings(LTitleLbl.clProSettings); LTitleLbl.clTagStr = AID; Form1.AddNewEvent(LTitleLbl, tbeOnClick, 'OpenDetail'); GlobalGridColCount = GlobalGridColCount + 1; if (GlobalGridColCount >= 3) GlobalGridColCount = 0; } else { LCardPnl = Form1.AddNewProPanel(BooksScrollBox, 'Card_' + AID); LCardPnl.Align = alTop; LCardPnl.Height = 110; LCardPnl.Margins.Left = 15; LCardPnl.Margins.Right = 15; LCardPnl.Margins.Bottom = 10; LCardPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); LCardPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E2DED5'); LCardPnl.clProSettings.BorderWidth = 1; LCardPnl.SetclProSettings(LCardPnl.clProSettings); LUrlLbl = Form1.AddNewProLabel(LCardPnl, 'CoverUrl_' + AID, ACoverUrl); LUrlLbl.Visible = False; LSummaryLbl = Form1.AddNewProLabel(LCardPnl, 'Desc_' + AID, ASummary); LSummaryLbl.Visible = False; LGenreLbl = Form1.AddNewProLabel(LCardPnl, 'Genre_' + AID, AGenre); LGenreLbl.Visible = False;
LCoverPnl = Form1.AddNewProPanel(LCardPnl, 'Cover_' + AID); LCoverPnl.Align = alLeft; LCoverPnl.Width = 65; LCoverPnl.Margins.Left = 10; LCoverPnl.Margins.Top = 10; LCoverPnl.Margins.Bottom = 10; LCoverPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(AColor); LCoverPnl.SetclProSettings(LCoverPnl.clProSettings); if (ACoverUrl <> '') { LCoverImg = Form1.AddNewProImage(LCoverPnl, 'CoverImg_' + AID); LCoverImg.Align = alClient; LCoverImg.Margins.Left = 2; LCoverImg.Margins.Right = 2; LCoverImg.Margins.Top = 2; LCoverImg.Margins.Bottom = 2; LCoverImg.clProSettings.PictureSource = ACoverUrl; LCoverImg.clProSettings.PictureAutoFit = True; LCoverImg.SetclProSettings(LCoverImg.clProSettings); } LRatingLbl = Form1.AddNewProLabel(LCardPnl, 'Rating_' + AID, ARating + ' ★' ); LRatingLbl.Align = alRight; LRatingLbl.Width = 45; LRatingLbl.Margins.Top = 10; LRatingLbl.Margins.Right = 10; LRatingLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B8860B'); LRatingLbl.SetclProSettings(LRatingLbl.clProSettings); LSummaryBtn = Form1.AddNewProButton(LCardPnl, 'Summary_' + AID, 'Bilgiler'); LSummaryBtn.Align = alRight; LSummaryBtn.Width = 60; LSummaryBtn.Margins.Top = 50; LSummaryBtn.Margins.Bottom = 25; LSummaryBtn.Margins.Right = -25; LSummaryBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); LSummaryBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); LSummaryBtn.SetclProSettings(LSummaryBtn.clProSettings); LSummaryBtn.clTagStr = AID; Form1.AddNewEvent(LSummaryBtn, tbeOnClick, 'OpenDetail'); LInfoPnl = Form1.AddNewProPanel(LCardPnl, 'Info_' + AID); LInfoPnl.Align = alClient; LInfoPnl.Margins.Left = 15;
LTitleLbl = Form1.AddNewProLabel(LInfoPnl, 'Title_' + AID, ATitle); LTitleLbl.Align = alTop; LTitleLbl.Height = 25; LTitleLbl.Margins.Top = 15; LTitleLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); LTitleLbl.clProSettings.FontSize = 16; LTitleLbl.clProSettings.TextSettings.Font.Style = [fsBold]; LTitleLbl.SetclProSettings(LTitleLbl.clProSettings);
LAuthorLbl = Form1.AddNewProLabel(LInfoPnl, 'Author_' + AID, AAuthor); LAuthorLbl.Align = alTop; LAuthorLbl.Height = 20; LAuthorLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#666666'); LAuthorLbl.SetclProSettings(LAuthorLbl.clProSettings); } GlobalBookCount = GlobalBookCount + 1; }
void DrawBooks; var i: Integer; clQueryItem: TClJSONQuery; jsonArrStr, itemID, itemTitle, itemAuthor, itemRating, itemColor, itemSummary, itemCover, itemGenre: String; { if (BooksScrollBox <> nil) BooksScrollBox.Free; BooksScrollBox = Form1.AddNewVertScrollBox(ScaledLayout, 'BooksScrollBox_' + FormatDateTime('hhnnsszzz', Now)); BooksScrollBox.Align = alClient; GlobalBookCount = 0; GlobalGridColCount = 0; if (GlobalBooksList == nil) Exit;
jsonArrStr = '['; for i = 0 to GlobalBooksList.Count - 1 { jsonArrStr = jsonArrStr + GlobalBooksList.Strings; if (i < GlobalBooksList.Count - 1) jsonArrStr = jsonArrStr + ','; } jsonArrStr = jsonArrStr + ']'; if (jsonArrStr <> '[]') { clQueryItem = Clomosy.ClDataSetFromJSON(jsonArrStr); if (clQueryItem <> nil) { clQueryItem.First; while (not clQueryItem.Eof) { itemGenre = clQueryItem.FieldByName('genre').AsString; if ((GlobalFilterGenre == 'Tümü') || (GlobalFilterGenre == '') || (Pos(GlobalFilterGenre, itemGenre) > 0)) { itemID = clQueryItem.FieldByName('id').AsString; itemTitle = clQueryItem.FieldByName('title').AsString; itemAuthor = clQueryItem.FieldByName('author').AsString; itemRating = clQueryItem.FieldByName('rating').AsString; itemColor = clQueryItem.FieldByName('color').AsString; itemSummary = clQueryItem.FieldByName('summary').AsString; itemCover = clQueryItem.FieldByName('cover').AsString; CreateBookCard(itemID, itemTitle, itemAuthor, itemRating, itemColor, itemSummary, itemCover, itemGenre); } clQueryItem.Next; } clQueryItem.Free; } } CountLbl.Text = IntToStr(GlobalBookCount) + ' kitap'; }
void FilterClick; var ClickedBtn: TclProButton; { ClickedBtn = TclProButton(Form1.clSender); GlobalFilterGenre = ClickedBtn.Text; FilterAllBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterAllBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterRomanBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterRomanBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterBilimBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterBilimBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterTarihBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterTarihBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterFelsefeBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterFelsefeBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterCocukBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterCocukBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterGelisimBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterGelisimBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
ClickedBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D29054'); ClickedBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); FilterAllBtn.SetclProSettings(FilterAllBtn.clProSettings); FilterRomanBtn.SetclProSettings(FilterRomanBtn.clProSettings); FilterBilimBtn.SetclProSettings(FilterBilimBtn.clProSettings); FilterTarihBtn.SetclProSettings(FilterTarihBtn.clProSettings); FilterFelsefeBtn.SetclProSettings(FilterFelsefeBtn.clProSettings); FilterCocukBtn.SetclProSettings(FilterCocukBtn.clProSettings); FilterGelisimBtn.SetclProSettings(FilterGelisimBtn.clProSettings);
DrawBooks; }
void FetchBooksFromFirebase; var clRestSettings, clRest, clRestBorrowed, clRestReviews, clRestNotif: TclRest; clQuery: TClJSONQuery; bookID, valStr, ratingStr, currentUser, respStr, retDateStr, bCoverUrl: String; bTitle, bAuthor, bColor, bSummary, bGenre: String; pStart, pEnd, totalRating, reviewCount, daysLeft: Integer; avgRating: Double; allBorrowedStr, allReviewsStr, bookBorrowBlock, bookRevBlock: String; { currentUser = Clomosy.GlobalVariableString; GlobalNotifMsg = ''; GlobalNotifCount = 0; GlobalGridColCount = 0; if (GlobalBooksList <> nil) GlobalBooksList.Free; GlobalBooksList = Clomosy.StringListNew; if (currentUser <> '') { clRestSettings = TclRest.Create; clRestSettings.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/settings/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/settings/ '+currentUser+'/viewMode.json'; clRestSettings.Method = rmGET; clRestSettings.Execute; if (Pos('"grid"', clRestSettings.Response) > 0) GlobalViewMode = 'grid'; else GlobalViewMode = 'list'; clRestSettings.Free; if (ViewToggleBtn <> nil) { if (GlobalViewMode == 'grid') ViewToggleBtn.Text = 'Liste'; else ViewToggleBtn.Text = 'Izgara'; } clRestNotif = TclRest.Create; clRestNotif.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/notifications/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/notifications/ ' + currentUser + '.json'; clRestNotif.Method = rmGET; clRestNotif.Execute; respStr = clRestNotif.Response; clRestNotif.Free; if ((respStr <> 'null') && (respStr <> '') && (respStr <> '{}')) { pStart = Pos('"msg":"', respStr); while (pStart > 0) { GlobalNotifCount = GlobalNotifCount + 1; respStr = Copy(respStr, pStart + 7, Length(respStr)); GlobalNotifMsg = GlobalNotifMsg + '- ' + Copy(respStr, 1, Pos('"', respStr) - 1) + #13#10; pStart = Pos('"msg":"', respStr); } } } else GlobalViewMode = 'list';
clRestBorrowed = TclRest.Create; clRestBorrowed.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/borrowed.json" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/borrowed.json '; clRestBorrowed.Method = rmGET; clRestBorrowed.Execute; allBorrowedStr = clRestBorrowed.Response; clRestBorrowed.Free; clRestReviews = TclRest.Create; clRestReviews.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/reviews.json" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/reviews.json '; clRestReviews.Method = rmGET; clRestReviews.Execute; allReviewsStr = clRestReviews.Response; clRestReviews.Free;
clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/books.json" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/books.json '; clRest.Method = rmGET; clRest.Accept = 'application/json'; clRest.Execute; if ((clRest.Response <> 'null') && (clRest.Response <> '') && (clRest.Response <> '{}')) { if ((Pos('":{"', clRest.Response) == 0) && (Pos('": {"', clRest.Response) == 0)) { clRest.Method = rmDELETE; clRest.Execute; ShowMessage('Sistem Uyarısı: Veritabanı sıfırlandı.'); } else { clQuery = Clomosy.ClDataSetFromJSON(clRest.Response); if (clQuery <> nil) { clQuery.First; while (not clQuery.Eof) { bookID = ''; try bookID = clQuery.FieldByName('id').AsString; except bookID = ''; } if (bookID <> '') { bTitle = 'Bilinmeyen Kitap'; try bTitle = clQuery.FieldByName('title').AsString; except bTitle = 'Bilinmeyen Kitap'; } bAuthor = 'Bilinmeyen Yazar'; try bAuthor = clQuery.FieldByName('author').AsString; except bAuthor = 'Bilinmeyen Yazar'; } bColor = '#2E4053'; try bColor = clQuery.FieldByName('color').AsString; except bColor = '#2E4053'; } bSummary = 'Açıklama bulunmuyor.'; try bSummary = clQuery.FieldByName('summary').AsString; except bSummary = 'Açıklama bulunmuyor.'; } bCoverUrl = ''; try bCoverUrl = clQuery.FieldByName('cover').AsString; except bCoverUrl = ''; } bGenre = 'Roman'; try bGenre = clQuery.FieldByName('genre').AsString; except bGenre = 'Roman'; }
if ((currentUser <> '') && (allBorrowedStr <> 'null') && (allBorrowedStr <> '')) { pStart = Pos('"' + bookID + '":', allBorrowedStr); if (pStart > 0) { bookBorrowBlock = Copy(allBorrowedStr, pStart, 1500); pEnd = Pos('}}', bookBorrowBlock); if (pEnd > 0) bookBorrowBlock = Copy(bookBorrowBlock, 1, pEnd); if (Pos('"' + currentUser + '"', bookBorrowBlock) > 0) { retDateStr = ''; pStart = Pos('"returnDate":"', bookBorrowBlock); if (pStart > 0) { pStart = pStart + 14; pEnd = Pos('"', Copy(bookBorrowBlock, pStart, Length(bookBorrowBlock))); if (pEnd > 0) retDateStr = Copy(bookBorrowBlock, pStart, pEnd - 1); } if (retDateStr <> '') { daysLeft = Trunc(StrToDate(retDateStr)) - Trunc(Now); if (daysLeft < 0) { GlobalNotifCount = GlobalNotifCount + 1; GlobalNotifMsg = GlobalNotifMsg + '- "' + bTitle + '" iadesi ' + IntToStr(Abs(daysLeft)) + ' gün gecikti!' + #13#10; } else if (daysLeft <= 2) { GlobalNotifCount = GlobalNotifCount + 1; GlobalNotifMsg = GlobalNotifMsg + '- "' + bTitle + '" iadesine ' + IntToStr(daysLeft) + ' gün kaldı!' + #13#10; } } } } } totalRating = 0; reviewCount = 0; if ((allReviewsStr <> 'null') && (allReviewsStr <> '')) { pStart = Pos('"' + bookID + '":', allReviewsStr); if (pStart > 0) { bookRevBlock = Copy(allReviewsStr, pStart, 1500); pEnd = Pos('}}', bookRevBlock); if (pEnd > 0) bookRevBlock = Copy(bookRevBlock, 1, pEnd); pStart = Pos('"rating":', bookRevBlock); while (pStart > 0) { pStart = pStart + 9; valStr = Copy(bookRevBlock, pStart, 1); if (valStr == ' ') valStr = Copy(bookRevBlock, pStart + 1, 1); totalRating = totalRating + StrToIntDef(valStr, 0); reviewCount = reviewCount + 1; bookRevBlock = Copy(bookRevBlock, pStart + 1, Length(bookRevBlock)); pStart = Pos('"rating":', bookRevBlock); } } } if (reviewCount > 0) { avgRating = (totalRating * 1.0) / reviewCount; ratingStr = FloatToStr(avgRating); if (Length(ratingStr) > 3) ratingStr = Copy(ratingStr, 1, 3); } else ratingStr = '0'; GlobalBooksList.Add('{"id":"'+bookID+'","title":"'+bTitle+'","author":"'+bAuthor+'", "rating":"'+ratingStr+'", "color":"'+bColor+'", "summary":"'+bSummary+'", "cover":"'+bCoverUrl+'", "genre":"'+bGenre+'"}'); } clQuery.Next; } clQuery.Free; } } } clRest.Free; if (GlobalNotifCount > 0) { NotifBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D81B60'); NotifBtn.SetclProSettings(NotifBtn.clProSettings); } else { NotifBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); NotifBtn.SetclProSettings(NotifBtn.clProSettings); } DrawBooks; }
void SearchOpenLibrary; var clRestAPI: TclRest; queryStr, jsonResult, docStr, guidStr, valStr, subStr: String; pStart, pEnd, docEnd, pSub, i: Integer; bKey, bTitle, bAuthor, bCover, bCoverUrl, bGenre: String; { queryStr = SearchEdt.Text; if (queryStr == '') { if (GlobalBooksList <> nil) GlobalBooksList.Free; GlobalBooksList = Clomosy.StringListNew; FetchBooksFromFirebase; Exit; } for i = 1 to Length(queryStr) { if (Copy(queryStr, i, 1) == ' ') queryStr = Copy(queryStr, 1, i-1) + '+' + Copy(queryStr, i+1, Length(queryStr)); }
if (GlobalBooksList <> nil) GlobalBooksList.Free; GlobalBooksList = Clomosy.StringListNew; CountLbl.Text = 'API Aranıyor...'; GlobalFilterGenre = 'Tümü'; FilterAllBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D29054'); FilterAllBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); FilterRomanBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterRomanBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterBilimBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterBilimBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterTarihBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterTarihBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterFelsefeBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterFelsefeBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterCocukBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterCocukBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterGelisimBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterGelisimBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); FilterAllBtn.SetclProSettings(FilterAllBtn.clProSettings); FilterRomanBtn.SetclProSettings(FilterRomanBtn.clProSettings); FilterBilimBtn.SetclProSettings(FilterBilimBtn.clProSettings); FilterTarihBtn.SetclProSettings(FilterTarihBtn.clProSettings); FilterFelsefeBtn.SetclProSettings(FilterFelsefeBtn.clProSettings); FilterCocukBtn.SetclProSettings(FilterCocukBtn.clProSettings); FilterGelisimBtn.SetclProSettings(FilterGelisimBtn.clProSettings);
// API Yükünü hafifletmek için &fields parametresi eklendi clRestAPI = TclRest.Create; clRestAPI.BaseURL = ' https://openlibrary.org/search.json?q=" rel="nofollow - https://openlibrary.org/search.json?q= ' + queryStr + '&limit=15&fields=key,title,author_name,cover_i,subject'; clRestAPI.Method = rmGET; clRestAPI.Accept = 'application/json'; clRestAPI.Execute; jsonResult = clRestAPI.Response; clRestAPI.Free; if ((jsonResult <> '') && (Pos('"docs":', jsonResult) > 0)) { pStart = Pos('"docs":[', jsonResult); if (pStart > 0) jsonResult = Copy(jsonResult, pStart + 8, Length(jsonResult)); pStart = Pos('{', jsonResult); while (pStart > 0) { docEnd = Pos('},{', jsonResult); if (docEnd == 0) docEnd = Pos('}]', jsonResult); if (docEnd == 0) Break; docStr = Copy(jsonResult, pStart, docEnd - pStart + 1); bKey = ''; pSub = Pos('"key":"', docStr); if (pSub > 0) { pSub = pSub + 7; pEnd = Pos('"', Copy(docStr, pSub, Length(docStr))); bKey = Copy(docStr, pSub, pEnd - 1); if (Length(bKey) > 7) bKey = Copy(bKey, 8, Length(bKey)); } bTitle = 'Bilinmeyen Kitap'; pSub = Pos('"title":"', docStr); if (pSub > 0) { pSub = pSub + 9; pEnd = Pos('"', Copy(docStr, pSub, Length(docStr))); bTitle = Copy(docStr, pSub, pEnd - 1); } bAuthor = 'Bilinmeyen Yazar'; pSub = Pos('"author_name":["', docStr); if (pSub > 0) { pSub = pSub + 16; pEnd = Pos('"', Copy(docStr, pSub, Length(docStr))); bAuthor = Copy(docStr, pSub, pEnd - 1); } bCoverUrl = ''; pSub = Pos('"cover_i":', docStr); if (pSub > 0) { pSub = pSub + 10; pEnd = 0; bCover = ''; while (pSub + pEnd <= Length(docStr)) { valStr = Copy(docStr, pSub + pEnd, 1); if ((valStr >= '0') && (valStr <= '9')) { bCover = bCover + valStr; pEnd = pEnd + 1; } else Break; } if (bCover <> '') bCoverUrl = ' https://covers.openlibrary.org/b/id/" rel="nofollow - https://covers.openlibrary.org/b/id/ ' + bCover + '-M.jpg'; } // --- TÜRLERİN (GENRE) KUSURSUZ AYRIŞTIRILMASI --- bGenre = 'Roman'; pSub = Pos('"subject":[', docStr); if (pSub > 0) { pSub = pSub + 11; pEnd = Pos(']', Copy(docStr, pSub, Length(docStr))); subStr = AnsiLowerCase(Copy(docStr, pSub, pEnd - 1)); bGenre = ''; if (Pos('science fiction', subStr) > 0) bGenre = bGenre + 'Bilim Kurgu, '; if (Pos('history', subStr) > 0) bGenre = bGenre + 'Tarih, '; if (Pos('philosophy', subStr) > 0) bGenre = bGenre + 'Felsefe, '; if ((Pos('children', subStr) > 0) || (Pos('juvenile', subStr) > 0)) bGenre = bGenre + 'Çocuk, '; if ((Pos('self-help', subStr) > 0) || (Pos('personal growth', subStr) > 0)) bGenre = bGenre + 'Kişisel Gelişim, '; if ((Pos('fiction', subStr) > 0) || (Pos('novel', subStr) > 0) || (Pos('magic', subStr) > 0) || (Pos('fantasy', subStr) > 0)) bGenre = bGenre + 'Roman, '; if (bGenre == '') bGenre = 'Roman'; else bGenre = Copy(bGenre, 1, Length(bGenre) - 2); } if (bKey <> '') GlobalBooksList.Add('{"id":"'+bKey+'","title":"'+bTitle+'","author":"'+bAuthor+'", "rating":"0", "color":"#2E4053", "summary":"OpenLibrary API Kaydı", "cover":"'+bCoverUrl+'", "genre":"'+bGenre+'"}'); jsonResult = Copy(jsonResult, docEnd + 2, Length(jsonResult)); pStart = Pos('{', jsonResult); } } else { ShowMessage('Arama sonucu bulunamadı. Arşiv veritabanınıza geri dönülüyor.'); SearchEdt.Text = ''; if (GlobalBooksList <> nil) GlobalBooksList.Free; GlobalBooksList = Clomosy.StringListNew; FetchBooksFromFirebase; Exit; } DrawBooks; }
void DoSearchBooks; { Form1.FormWaiting.Visible = True; GlobalActionType = 'SEARCH'; GlobalActionTimer.Enabled = True; }
void OnGlobalActionTimer; var clRest: TclRest; bookID, currentUser, jsonBody, returnDate: String; { GlobalActionTimer.Enabled = False; bookID = DetailContentPnl.clTagStr; currentUser = Clomosy.GlobalVariableString; if (GlobalActionType == 'BORROW') { returnDate = FormatDateTime('dd.mm.yyyy', Now + 14); clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/borrowed/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/borrowed/ '+bookID+'.json'; clRest.Method = rmPUT; jsonBody = '{"user":"'+currentUser+'", "returnDate":"'+returnDate+'", "id":"'+bookID+'"}'; clRest.AddBody(jsonBody, 'application/json'); clRest.Execute; clRest.Free; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/borrow_history/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/borrow_history/ '+bookID+'.json'; clRest.Method = rmPOST; jsonBody = '{"user":"'+currentUser+'", "date":"'+FormatDateTime('dd.mm.yyyy', Now)+'"}'; clRest.AddBody(jsonBody, 'application/json'); clRest.Execute; clRest.Free; if (GlobalCurrentStock > 0) { GlobalCurrentStock = GlobalCurrentStock - 1; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/books/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/books/ '+bookID+'/stock.json'; clRest.Method = rmPUT; clRest.AddBody('"' + IntToStr(GlobalCurrentStock) + '"', 'application/json'); clRest.Execute; clRest.Free; } DetailBorrowBtn.Text = 'Zaten Ödünç Aldınız'; DetailBorrowBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50'); DetailBorrowBtn.Enabled = False; DetailBorrowBtn.SetclProSettings(DetailBorrowBtn.clProSettings); SendNotification(currentUser, '"' + DetailTitleLbl.Text + '" adlı kitabı ödünç aldınız.'); ShowMessage(DetailTitleLbl.Text + ' adlı kitabı ödünç aldınız!'); } else if (GlobalActionType == 'ADD_FAV') { clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/favorites/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/favorites/ '+currentUser+'/'+bookID+'.json'; clRest.Method = rmPUT; jsonBody = '{"added":"true", "addedDate":"' + FormatDateTime('dd.mm.yyyy', Now) + '"}'; clRest.AddBody(jsonBody, 'application/json'); clRest.Execute; clRest.Free; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/book_favorites/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/book_favorites/ '+bookID+'/'+currentUser+'.json'; clRest.Method = rmPUT; clRest.AddBody('{"user":"'+currentUser+'"}', 'application/json'); clRest.Execute; clRest.Free; DetailFavBtn.Text = 'Listemde (Çıkar)'; DetailFavBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); DetailFavBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#D81B60'); DetailFavBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D81B60'); DetailFavBtn.clProSettings.BorderWidth = 1; DetailFavBtn.SetclProSettings(DetailFavBtn.clProSettings); SendNotification(currentUser, '"' + DetailTitleLbl.Text + '" kitabını okuma listenize eklediniz.'); ShowMessage('Kitap favorilerinize eklendi!'); } else if (GlobalActionType == 'DEL_FAV') { clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/favorites/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/favorites/ '+currentUser+'/'+bookID+'.json'; clRest.Method = rmDELETE; clRest.Execute; clRest.Free; clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/book_favorites/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/book_favorites/ '+bookID+'/'+currentUser+'.json'; clRest.Method = rmDELETE; clRest.Execute; clRest.Free; DetailFavBtn.Text = 'Listeme Ekle'; DetailFavBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); DetailFavBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); DetailFavBtn.clProSettings.BorderWidth = 0; DetailFavBtn.SetclProSettings(DetailFavBtn.clProSettings); ShowMessage('Kitap favorilerinizden çıkarıldı.'); } else if (GlobalActionType == 'SEARCH') { SearchOpenLibrary; } Form1.FormWaiting.Visible = False; }
void CloseCustomAlert; { if (AlertBoxPnl <> nil) { AlertBoxPnl.Free; AlertBoxPnl = nil; } if (AlertOverlayPnl <> nil) { AlertOverlayPnl.Free; AlertOverlayPnl = nil; } }
void ShowCustomAlert(AMessage: String); { AlertOverlayPnl = Form1.AddNewProPanel(Form1, 'AlertOverlayPnl'); AlertOverlayPnl.Align = alClient; AlertOverlayPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000'); AlertOverlayPnl.Opacity = 0.6; AlertOverlayPnl.SetclProSettings(AlertOverlayPnl.clProSettings); AlertOverlayPnl.BringToFront;
AlertBoxPnl = Form1.AddNewProPanel(Form1, 'AlertBoxPnl'); AlertBoxPnl.Align = alCenter; AlertBoxPnl.Width = 280; AlertBoxPnl.Height = 220; AlertBoxPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); AlertBoxPnl.clProSettings.RoundHeight = 15; AlertBoxPnl.clProSettings.RoundWidth = 15; AlertBoxPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#36212E'); AlertBoxPnl.clProSettings.BorderWidth = 2; AlertBoxPnl.SetclProSettings(AlertBoxPnl.clProSettings); AlertBoxPnl.BringToFront;
AlertMsgLbl = Form1.AddNewProLabel(AlertBoxPnl, 'AlertMsgLbl', AMessage); AlertMsgLbl.Align = alTop; AlertMsgLbl.Height = 120; AlertMsgLbl.Margins.Top = 20; AlertMsgLbl.Margins.Left = 15; AlertMsgLbl.Margins.Right = 15; AlertMsgLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#002B36'); AlertMsgLbl.clProSettings.FontSize = 14; AlertMsgLbl.clProSettings.TextSettings.Font.Style = [fsBold]; AlertMsgLbl.clProSettings.WordWrap = True; AlertMsgLbl.SetclProSettings(AlertMsgLbl.clProSettings);
AlertOkBtn = Form1.AddNewProButton(AlertBoxPnl, 'AlertOkBtn', 'Tamam'); AlertOkBtn.Align = alBottom; AlertOkBtn.Height = 40; AlertOkBtn.Margins.Bottom = 15; AlertOkBtn.Margins.Left = 60; AlertOkBtn.Margins.Right = 60; AlertOkBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D29054'); AlertOkBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); AlertOkBtn.clProSettings.RoundHeight = 8; AlertOkBtn.clProSettings.RoundWidth = 8; AlertOkBtn.SetclProSettings(AlertOkBtn.clProSettings); Form1.AddNewEvent(AlertOkBtn, tbeOnClick, 'CloseCustomAlert'); }
void ShowNotifications; var clRest: TclRest; { if (GlobalNotifCount == 0) ShowCustomAlert('Şu an için yeni bir bildiriminiz bulunmuyor.'); else { ShowCustomAlert('BİLDİRİMLERİNİZ:'#13#10 + GlobalNotifMsg); if (Clomosy.GlobalVariableString <> '') { clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/notifications/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/notifications/ ' + Clomosy.GlobalVariableString + '.json'; clRest.Method = rmDELETE; clRest.Execute; clRest.Free; } NotifBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); NotifBtn.SetclProSettings(NotifBtn.clProSettings); GlobalNotifCount = 0; } }
void LoadUserProfileInitials; var clRest: TclRest; resp, adStr, soyadStr, initials: String; pStart, pEnd: Integer; { initials = 'U'; if (Clomosy.GlobalVariableString <> '') { clRest = TclRest.Create; clRest.BaseURL = ' https://deneme-a6346-default-rtdb.firebaseio.com/users/" rel="nofollow - https://deneme-a6346-default-rtdb.firebaseio.com/users/ ' + Clomosy.GlobalVariableString + '.json'; clRest.Method = rmGET; clRest.Execute; resp = clRest.Response; clRest.Free; if ((resp <> 'null') && (resp <> '') && (resp <> '{}')) { adStr = ''; soyadStr = ''; pStart = Pos('"ad":"', resp); if (pStart > 0) { pStart = pStart + 6; pEnd = Pos('"', Copy(resp, pStart, Length(resp))); adStr = Copy(resp, pStart, pEnd - 1); } pStart = Pos('"soyad":"', resp); if (pStart > 0) { pStart = pStart + 9; pEnd = Pos('"', Copy(resp, pStart, Length(resp))); soyadStr = Copy(resp, pStart, pEnd - 1); } initials = ''; if (adStr <> '') initials = initials + Copy(adStr, 1, 1); if (soyadStr <> '') initials = initials + Copy(soyadStr, 1, 1); if (initials == '') initials = Copy(Clomosy.GlobalVariableString, 1, 2); } } if (ProfileBtn <> nil) { ProfileBtn.Text = AnsiUpperCase(initials); ProfileBtn.clProSettings.TextSettings.Font.Style = [fsBold]; ProfileBtn.clProSettings.FontSize = 15; ProfileBtn.SetclProSettings(ProfileBtn.clProSettings); } }
void CreateHeader; { HeaderPnl = Form1.AddNewProPanel(ScaledLayout, 'HeaderPnl'); HeaderPnl.Align = alTop; HeaderPnl.Height = 70; HeaderPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); HeaderPnl.SetclProSettings(HeaderPnl.clProSettings); LogoLeftPnl = Form1.AddNewProPanel(HeaderPnl, 'LogoLeftPnl'); LogoLeftPnl.Align = alLeft; LogoLeftPnl.Width = 200; LogoLeftPnl.Margins.Left = 20; LogoLeftPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); LogoLeftPnl.SetclProSettings(LogoLeftPnl.clProSettings);
TitleLbl = Form1.AddNewProLabel(LogoLeftPnl, 'TitleLbl', 'Arşiv'); TitleLbl.Align = alTop; TitleLbl.Height = 30; TitleLbl.Margins.Top = 15; TitleLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#002B36'); TitleLbl.clProSettings.FontSize = 20; TitleLbl.clProSettings.TextSettings.Font.Style = [fsBold]; TitleLbl.SetclProSettings(TitleLbl.clProSettings); SubTitleLbl = Form1.AddNewProLabel(LogoLeftPnl, 'SubTitleLbl', 'KÜTÜPHANESİ'); SubTitleLbl.Align = alTop; SubTitleLbl.Height = 20; SubTitleLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#888888'); SubTitleLbl.clProSettings.FontSize = 10; SubTitleLbl.SetclProSettings(SubTitleLbl.clProSettings);
ActionRightPnl = Form1.AddNewProPanel(HeaderPnl, 'ActionRightPnl'); ActionRightPnl.Align = alRight; ActionRightPnl.Width = 100; ActionRightPnl.Margins.Right = 20; ActionRightPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); ActionRightPnl.SetclProSettings(ActionRightPnl.clProSettings);
ProfileBtn = Form1.AddNewProButton(ActionRightPnl, 'ProfileBtn', ''); ProfileBtn.Align = alRight; ProfileBtn.Width = 40; ProfileBtn.Margins.Top = 15; ProfileBtn.Margins.Bottom = 15; ProfileBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); ProfileBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); ProfileBtn.clProSettings.RoundHeight = 5; ProfileBtn.clProSettings.RoundWidth = 5; ProfileBtn.SetclProSettings(ProfileBtn.clProSettings);
NotifBtn = Form1.AddNewProImage(ActionRightPnl, 'NotifBtn'); NotifBtn.Align = alRight; NotifBtn.Width = 40; NotifBtn.Margins.Right = 10; NotifBtn.Margins.Top = 15; NotifBtn.Margins.Bottom = 15; NotifBtn.clProSettings.PictureSource = ' https://w7.pngwing.com/pngs/984/292/png-transparent-alarm-bell-essentials-notification-ui-ui-essentials-icon-thumbnail.png" rel="nofollow - https://w7.pngwing.com/pngs/984/292/png-transparent-alarm-bell-essentials-notification-ui-ui-essentials-icon-thumbnail.png '; NotifBtn.clProSettings.PictureAutoFit = True; NotifBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); NotifBtn.clProSettings.RoundHeight = 8; NotifBtn.clProSettings.RoundWidth = 8; NotifBtn.SetclProSettings(NotifBtn.clProSettings); Form1.AddNewEvent(NotifBtn, tbeOnClick, 'ShowNotifications'); }
void CreateFiltersUI; { FiltersPnl = Form1.AddNewProPanel(ScaledLayout, 'FiltersPnl'); FiltersPnl.Align = alTop; FiltersPnl.Height = 55; FiltersPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FiltersPnl.SetclProSettings(FiltersPnl.clProSettings);
FiltersScrollBox = Form1.AddNewHorzScrollBox(FiltersPnl, 'FiltersScrollBox'); FiltersScrollBox.Align = alClient; FiltersScrollBox.Margins.Left = 10; FiltersScrollBox.Margins.Right = 10; FiltersScrollBox.Margins.Bottom = 5;
FilterAllBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterAllBtn', 'Tümü'); FilterAllBtn.Align = alLeft; FilterAllBtn.Width = 60; FilterAllBtn.Margins.Right = 5; FilterAllBtn.Margins.Top = 5; FilterAllBtn.Margins.Bottom = 5; FilterAllBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D29054'); FilterAllBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); FilterAllBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterAllBtn.clProSettings.BorderWidth = 1; FilterAllBtn.clProSettings.RoundHeight = 15; FilterAllBtn.clProSettings.RoundWidth = 15; FilterAllBtn.SetclProSettings(FilterAllBtn.clProSettings); Form1.AddNewEvent(FilterAllBtn, tbeOnClick, 'FilterClick');
FilterRomanBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterRomanBtn', 'Roman'); FilterRomanBtn.Align = alLeft; FilterRomanBtn.Width = 70; FilterRomanBtn.Margins.Right = 5; FilterRomanBtn.Margins.Top = 5; FilterRomanBtn.Margins.Bottom = 5; FilterRomanBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterRomanBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterRomanBtn.clProSettings.BorderWidth = 1; FilterRomanBtn.clProSettings.RoundHeight = 15; FilterRomanBtn.clProSettings.RoundWidth = 15; FilterRomanBtn.SetclProSettings(FilterRomanBtn.clProSettings); Form1.AddNewEvent(FilterRomanBtn, tbeOnClick, 'FilterClick');
FilterBilimBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterBilimBtn', 'Bilim Kurgu'); FilterBilimBtn.Align = alLeft; FilterBilimBtn.Width = 90; FilterBilimBtn.Margins.Right = 5; FilterBilimBtn.Margins.Top = 5; FilterBilimBtn.Margins.Bottom = 5; FilterBilimBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterBilimBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterBilimBtn.clProSettings.BorderWidth = 1; FilterBilimBtn.clProSettings.RoundHeight = 15; FilterBilimBtn.clProSettings.RoundWidth = 15; FilterBilimBtn.SetclProSettings(FilterBilimBtn.clProSettings); Form1.AddNewEvent(FilterBilimBtn, tbeOnClick, 'FilterClick');
FilterTarihBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterTarihBtn', 'Tarih'); FilterTarihBtn.Align = alLeft; FilterTarihBtn.Width = 70; FilterTarihBtn.Margins.Right = 5; FilterTarihBtn.Margins.Top = 5; FilterTarihBtn.Margins.Bottom = 5; FilterTarihBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterTarihBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterTarihBtn.clProSettings.BorderWidth = 1; FilterTarihBtn.clProSettings.RoundHeight = 15; FilterTarihBtn.clProSettings.RoundWidth = 15; FilterTarihBtn.SetclProSettings(FilterTarihBtn.clProSettings); Form1.AddNewEvent(FilterTarihBtn, tbeOnClick, 'FilterClick');
FilterFelsefeBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterFelsefeBtn', 'Felsefe'); FilterFelsefeBtn.Align = alLeft; FilterFelsefeBtn.Width = 70; FilterFelsefeBtn.Margins.Right = 5; FilterFelsefeBtn.Margins.Top = 5; FilterFelsefeBtn.Margins.Bottom = 5; FilterFelsefeBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterFelsefeBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterFelsefeBtn.clProSettings.BorderWidth = 1; FilterFelsefeBtn.clProSettings.RoundHeight = 15; FilterFelsefeBtn.clProSettings.RoundWidth = 15; FilterFelsefeBtn.SetclProSettings(FilterFelsefeBtn.clProSettings); Form1.AddNewEvent(FilterFelsefeBtn, tbeOnClick, 'FilterClick');
FilterCocukBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterCocukBtn', 'Çocuk'); FilterCocukBtn.Align = alLeft; FilterCocukBtn.Width = 70; FilterCocukBtn.Margins.Right = 5; FilterCocukBtn.Margins.Top = 5; FilterCocukBtn.Margins.Bottom = 5; FilterCocukBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterCocukBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterCocukBtn.clProSettings.BorderWidth = 1; FilterCocukBtn.clProSettings.RoundHeight = 15; FilterCocukBtn.clProSettings.RoundWidth = 15; FilterCocukBtn.SetclProSettings(FilterCocukBtn.clProSettings); Form1.AddNewEvent(FilterCocukBtn, tbeOnClick, 'FilterClick');
FilterGelisimBtn = Form1.AddNewProButton(FiltersScrollBox, 'FilterGelisimBtn', 'Kişisel Gelişim'); FilterGelisimBtn.Align = alLeft; FilterGelisimBtn.Width = 100; FilterGelisimBtn.Margins.Right = 5; FilterGelisimBtn.Margins.Top = 5; FilterGelisimBtn.Margins.Bottom = 5; FilterGelisimBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); FilterGelisimBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D29054'); FilterGelisimBtn.clProSettings.BorderWidth = 1; FilterGelisimBtn.clProSettings.RoundHeight = 15; FilterGelisimBtn.clProSettings.RoundWidth = 15; FilterGelisimBtn.SetclProSettings(FilterGelisimBtn.clProSettings); Form1.AddNewEvent(FilterGelisimBtn, tbeOnClick, 'FilterClick'); }
void CreateDetailUI; { DetailOverlayPnl = Form1.AddNewProPanel(Form1, 'DetailOverlayPnl'); DetailOverlayPnl.Align = alClient; DetailOverlayPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000'); DetailOverlayPnl.Opacity = 0.6; DetailOverlayPnl.Visible = False; Form1.AddNewEvent(DetailOverlayPnl, tbeOnClick, 'CloseDetail');
DetailContentPnl = Form1.AddNewProPanel(Form1, 'DetailContentPnl'); DetailContentPnl.Align = alCenter; DetailContentPnl.Width = 320; DetailContentPnl.Height = 550; DetailContentPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); DetailContentPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#36212E'); DetailContentPnl.clProSettings.BorderWidth = 2; DetailContentPnl.clProSettings.RoundHeight = 10; DetailContentPnl.clProSettings.RoundWidth = 10; DetailContentPnl.SetclProSettings(DetailContentPnl.clProSettings); DetailContentPnl.Visible = False;
DetailHeaderPnl = Form1.AddNewProPanel(DetailContentPnl, 'DetailHeaderPnl'); DetailHeaderPnl.Align = alTop; DetailHeaderPnl.Height = 180; DetailHeaderPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C3E50'); DetailHeaderPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#36212E'); DetailHeaderPnl.clProSettings.BorderWidth = 2; DetailHeaderPnl.clProSettings.RoundHeight = 10; DetailHeaderPnl.clProSettings.RoundWidth = 10; DetailHeaderPnl.SetclProSettings(DetailHeaderPnl.clProSettings);
DetailTitleLbl = Form1.AddNewProLabel(DetailContentPnl, 'DetailTitleLbl', '-'); DetailTitleLbl.Align = alTop; DetailTitleLbl.Height = 35; DetailTitleLbl.Margins.Top = 15; DetailTitleLbl.Margins.Left = 15; DetailTitleLbl.Margins.Right = 15; DetailTitleLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); DetailTitleLbl.clProSettings.FontSize = 20; DetailTitleLbl.clProSettings.TextSettings.Font.Style = [fsBold]; DetailTitleLbl.SetclProSettings(DetailTitleLbl.clProSettings);
DetailAuthorLbl = Form1.AddNewProLabel(DetailContentPnl, 'DetailAuthorLbl', '-'); DetailAuthorLbl.Align = alTop; DetailAuthorLbl.Height = 25; DetailAuthorLbl.Margins.Left = 15; DetailAuthorLbl.Margins.Right = 15; DetailAuthorLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#666666'); DetailAuthorLbl.clProSettings.FontSize = 14; DetailAuthorLbl.SetclProSettings(DetailAuthorLbl.clProSettings);
DetailScrollBox = Form1.AddNewVertScrollBox(DetailContentPnl, 'DetailScrollBox'); DetailScrollBox.Align = alClient; DetailScrollBox.Margins.Top = 15; DetailScrollBox.Margins.Left = 15; DetailScrollBox.Margins.Right = 15; DetailScrollBox.Margins.Bottom = 15;
DetailDescLbl = Form1.AddNewProLabel(DetailScrollBox, 'DetailDescLbl', ''); DetailDescLbl.Align = alTop; DetailDescLbl.Margins.Bottom = 20; DetailDescLbl.Width = 340; DetailDescLbl.Height = 100; DetailDescLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#444444'); DetailDescLbl.clProSettings.WordWrap = True; DetailDescLbl.clProSettings.AutoSize = True; DetailDescLbl.SetclProSettings(DetailDescLbl.clProSettings);
DetailFooterPnl = Form1.AddNewProPanel(DetailContentPnl, 'DetailFooterPnl'); DetailFooterPnl.Align = alBottom; DetailFooterPnl.Height = 160; DetailBorrowBtn = Form1.AddNewProButton(DetailFooterPnl, 'DetailBorrowBtn', 'Ödünç Al'); DetailBorrowBtn.Align = alTop; DetailBorrowBtn.Height = 40; DetailBorrowBtn.Margins.Left = 20; DetailBorrowBtn.Margins.Right = 20; DetailBorrowBtn.Margins.Top = 10; DetailBorrowBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); DetailBorrowBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); DetailBorrowBtn.clProSettings.RoundHeight = 5; DetailBorrowBtn.clProSettings.RoundWidth = 5; DetailBorrowBtn.SetclProSettings(DetailBorrowBtn.clProSettings); Form1.AddNewEvent(DetailBorrowBtn, tbeOnClick, 'BorrowBookClick'); DetailFavBtn = Form1.AddNewProButton(DetailFooterPnl, 'DetailFavBtn', 'Listeme Ekle'); DetailFavBtn.Align = alTop; DetailFavBtn.Height = 40; DetailFavBtn.Margins.Left = 20; DetailFavBtn.Margins.Right = 20; DetailFavBtn.Margins.Top = 10; DetailFavBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#36212E'); DetailFavBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); DetailFavBtn.clProSettings.RoundHeight = 5; DetailFavBtn.clProSettings.RoundWidth = 5; DetailFavBtn.SetclProSettings(DetailFavBtn.clProSettings); Form1.AddNewEvent(DetailFavBtn, tbeOnClick, 'FavBookClick'); DetailCloseBtn = Form1.AddNewProButton(DetailFooterPnl, 'DetailCloseBtn', 'Kapat'); DetailCloseBtn.Align = alTop; DetailCloseBtn.Height = 40; DetailCloseBtn.Margins.Left = 20; DetailCloseBtn.Margins.Right = 20; DetailCloseBtn.Margins.Top = 10; DetailCloseBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F9F7F4'); DetailCloseBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#002B36'); DetailCloseBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#DDDDDD'); DetailCloseBtn.clProSettings.BorderWidth = 1; DetailCloseBtn.clProSettings.RoundHeight = 5; DetailCloseBtn.clProSettings.RoundWidth = 5; DetailCloseBtn.SetclProSettings(DetailCloseBtn.clProSettings); Form1.AddNewEvent(DetailCloseBtn, tbeOnClick, 'CloseDetail'); }
void SetupUI; { CreateHeader; LoadUserProfileInitials; CreateDetailUI;
PageTitlePnl = Form1.AddNewProPanel(ScaledLayout, 'PageTitlePnl'); PageTitlePnl.Align = alTop; PageTitlePnl.Height = 50; PageTitlePnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); PageTitlePnl.SetclProSettings(PageTitlePnl.clProSettings);
PageTitleLbl = Form1.AddNewProLabel(PageTitlePnl, 'PageTitleLbl', 'Katalog'); PageTitleLbl.Align = alLeft; PageTitleLbl.Margins.Left = 20; PageTitleLbl.Width = 200; PageTitleLbl.clProSettings.FontSize = 22; PageTitleLbl.SetclProSettings(PageTitleLbl.clProSettings);
ViewToggleBtn = Form1.AddNewProButton(PageTitlePnl, 'ViewToggleBtn', ''); ViewToggleBtn.Align = alRight; ViewToggleBtn.Width = 60; ViewToggleBtn.Margins.Right = 20; ViewToggleBtn.Margins.Top = 10; ViewToggleBtn.Margins.Bottom = 10; ViewToggleBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); ViewToggleBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#F0EBE1') ViewToggleBtn.clProSettings.RoundHeight = 5; ViewToggleBtn.clProSettings.RoundWidth = 5; ViewToggleBtn.clProSettings.FontSize = 10; ViewToggleBtn.SetclProSettings(ViewToggleBtn.clProSettings); Form1.AddNewEvent(ViewToggleBtn, tbeOnClick, 'ToggleViewMode'); ViewToggleBtn.enabled = false; SearchWrapPnl = Form1.AddNewProPanel(ScaledLayout, 'SearchWrapPnl'); SearchWrapPnl.Align = alTop; SearchWrapPnl.Height = 55; SearchWrapPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); SearchWrapPnl.SetclProSettings(SearchWrapPnl.clProSettings);
SearchPnl = Form1.AddNewProPanel(SearchWrapPnl, 'SearchPnl'); SearchPnl.Align = alClient; SearchPnl.Margins.Left = 15; SearchPnl.Margins.Right = 15; SearchPnl.Margins.Bottom = 10; SearchPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); SearchPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E2DED5'); SearchPnl.clProSettings.BorderWidth = 1; SearchPnl.clProSettings.RoundHeight = 5; SearchPnl.clProSettings.RoundWidth = 5; SearchPnl.SetclProSettings(SearchPnl.clProSettings);
SearchEdt = Form1.AddNewProEdit(SearchPnl, 'SearchEdt','API veya Arşivde Ara...'); SearchEdt.Align = alClient; SearchEdt.Margins.Left = 10; SearchEdt.Margins.Right = 10; SearchEdt.Margins.Top = 5; SearchEdt.Margins.Bottom = 5; SearchEdt.SetclProSettings(SearchEdt.clProSettings);
SearchBtn = Form1.AddNewProButton(SearchPnl, 'SearchBtn', 'Ara'); SearchBtn.Align = alRight; SearchBtn.Width = 60; SearchBtn.Margins.Right = 5; SearchBtn.Margins.Top = 5; SearchBtn.Margins.Bottom = 5; SearchBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D29054'); SearchBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); SearchBtn.clProSettings.RoundHeight = 5; SearchBtn.clProSettings.RoundWidth = 5; SearchBtn.SetclProSettings(SearchBtn.clProSettings); Form1.AddNewEvent(SearchBtn, tbeOnClick, 'DoSearchBooks');
CreateFiltersUI;
CountPnl = Form1.AddNewProPanel(ScaledLayout, 'CountPnl'); CountPnl.Align = alTop; CountPnl.Height = 30; CountPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); CountPnl.SetclProSettings(CountPnl.clProSettings); CountLbl = Form1.AddNewProLabel(CountPnl, 'CountLbl', 'Yükleniyor...'); CountLbl.Align = alLeft; CountLbl.Margins.Left = 20; CountLbl.Width = 100; CountLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#888888'); CountLbl.SetclProSettings(CountLbl.clProSettings);
DividerPnl = Form1.AddNewProPanel(ScaledLayout, 'DividerPnl'); DividerPnl.Align = alTop; DividerPnl.Height = 2; DividerPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E2DED5'); DividerPnl.SetclProSettings(DividerPnl.clProSettings);
BottomMenuPnl = Form1.AddNewProPanel(ScaledLayout, 'BottomMenuPnl'); BottomMenuPnl.Align = alBottom; BottomMenuPnl.Height = 60; BottomMenuPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0EBE1'); BottomMenuPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E2DED5'); BottomMenuPnl.clProSettings.BorderWidth = 1; BottomMenuPnl.SetclProSettings(BottomMenuPnl.clProSettings);
CatalogBtn = Form1.AddNewProButton(BottomMenuPnl, 'CatalogBtn', 'Katalog'); CatalogBtn.Align = alLeft; CatalogBtn.Width = 70; CatalogBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#D29054'); CatalogBtn.clProSettings.FontSize = 11; CatalogBtn.SetclProSettings(CatalogBtn.clProSettings); BorrowedBtn = Form1.AddNewProButton(BottomMenuPnl, 'BorrowedBtn', 'Ödünç'); BorrowedBtn.Align = alLeft; BorrowedBtn.Width = 70; BorrowedBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#888888'); BorrowedBtn.clProSettings.FontSize = 11; BorrowedBtn.SetclProSettings(BorrowedBtn.clProSettings); Form1.AddNewEvent(BorrowedBtn, tbeOnClick, 'GoToBorrowed');
QrBtn = Form1.AddNewProButton(BottomMenuPnl, 'QrBtn', 'QR Tara'); QrBtn.Align = alLeft; QrBtn.Width = 70; QrBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#888888'); QrBtn.clProSettings.FontSize = 11; QrBtn.SetclProSettings(QrBtn.clProSettings); Form1.AddNewEvent(QrBtn, tbeOnClick, 'GoToQR');
MyListBtn = Form1.AddNewProButton(BottomMenuPnl, 'MyListBtn', 'Listem'); MyListBtn.Align = alLeft; MyListBtn.Width = 70; MyListBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#888888'); MyListBtn.clProSettings.FontSize = 11; MyListBtn.SetclProSettings(MyListBtn.clProSettings); Form1.AddNewEvent(MyListBtn, tbeOnClick, 'GoToListe');
SettingsBtn = Form1.AddNewProButton(BottomMenuPnl, 'SettingsBtn', 'Ayarlar'); SettingsBtn.Align = alLeft; SettingsBtn.Width = 70; SettingsBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#888888'); SettingsBtn.clProSettings.FontSize = 11; SettingsBtn.SetclProSettings(SettingsBtn.clProSettings); Form1.AddNewEvent(SettingsBtn, tbeOnClick, 'GoToSettings');
GlobalActionTimer = Form1.AddNewTimer(Form1, 'GlobalActionTimer', 100); Form1.AddNewEvent(GlobalActionTimer, tbeOnTimer, 'OnGlobalActionTimer'); GlobalActionTimer.Enabled = False; OpenDetailTimer = Form1.AddNewTimer(Form1, 'OpenDetailTimer', 100); Form1.AddNewEvent(OpenDetailTimer, tbeOnTimer, 'OnOpenDetailTimer'); OpenDetailTimer.Enabled = False; }
{ Form1 = TCLForm.Create(Self); ScaledLayout = Form1.AddNewScaledLayout(Form1, 'ScaledLayout'); ScaledLayout.Align = alClient; ScaledLayout.OriginalHeight = 750; ScaledLayout.OriginalWidth = 350;
SetupUI; GlobalFilterGenre = 'Tümü'; FetchBooksFromFirebase; Form1.FormWaiting.Visible = False; Form1.BtnFormMenu.Visible = False; Form1.BtnGoBack.Visible = False; Form1.LytTopBar.Visible = False; Form1.Run; } https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|