|
var // --- Form --- MyForm: TclForm; // --- Sayfa Düzenleri (Layouts) --- LayoutMainPage: TclLayout; LayoutSchedulePage: TclLayout; // --- Etiketler (Metinler) --- lblTitle: TclLabel; lblScheduleTitle: TclLabel; // --- Butonlar --- btnDailySchedule: TclProButton; btnStudentList: TclProButton; btnBack: TclProButton; // --- Listeler --- myListView: TclListView;
void GoBack; { // Geri dönüldüğünde Etüt sayfasını gizle, Ana sayfayı göster LayoutSchedulePage.Visible = False; LayoutMainPage.Visible = True; }
void GoToSchedule; { // Etütlere tıklandığında Ana sayfayı gizle, Etüt sayfasını göster LayoutMainPage.Visible = False; LayoutSchedulePage.Visible = True; }
{ MyForm = TclForm.Create(Self); // ========================================== // 1. ANA SAYFA DÜZENİ (LayoutMainPage) // ========================================== LayoutMainPage = MyForm.AddNewLayout(MyForm, 'LayoutMainPage'); LayoutMainPage.Align = alClient; LayoutMainPage.Visible = True; // İlk başta bu sayfa görünecek
// Başlık Alanı lblTitle = MyForm.AddNewLabel(LayoutMainPage, 'lblTitle', 'Edu-Assistant Pro'); lblTitle.StyledSettings = ssFamily; lblTitle.TextSettings.Font.Size = 28; lblTitle.TextSettings.Font.Style = [fsBold]; lblTitle.Align = alTop; lblTitle.Margins.Top = 30; lblTitle.Height = 50;
// Bugünün Programı Pro Butonu btnDailySchedule = MyForm.AddNewProButton(LayoutMainPage, 'btnDailySchedule', '📅 Bugünkü Etütler'); btnDailySchedule.Align = alTop; btnDailySchedule.Height = 70; btnDailySchedule.Margins.Top = 40; btnDailySchedule.Margins.Left = 30; btnDailySchedule.Margins.Right = 30; btnDailySchedule.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0EA5E9'); btnDailySchedule.clProSettings.RoundHeight = 15; btnDailySchedule.clProSettings.RoundWidth = 15; btnDailySchedule.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); btnDailySchedule.clProSettings.FontSize = 18; btnDailySchedule.SetclProSettings(btnDailySchedule.clProSettings);
MyForm.AddNewEvent(btnDailySchedule, tbeOnClick, 'GoToSchedule');
// Öğrenci Listesi Pro Butonu btnStudentList = MyForm.AddNewProButton(LayoutMainPage, 'btnStudentList', '👥 Öğrenci Portföyü'); btnStudentList.Align = alTop; btnStudentList.Height = 70; btnStudentList.Margins.Top = 20; btnStudentList.Margins.Left = 30; btnStudentList.Margins.Right = 30; btnStudentList.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B'); btnStudentList.clProSettings.RoundHeight = 15; btnStudentList.clProSettings.RoundWidth = 15; btnStudentList.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); btnStudentList.clProSettings.FontSize = 18; btnStudentList.SetclProSettings(btnStudentList.clProSettings);
// ========================================== // 2. ETÜT PROGRAMI SAYFA DÜZENİ (LayoutSchedulePage) // ========================================== LayoutSchedulePage = MyForm.AddNewLayout(MyForm, 'LayoutSchedulePage'); LayoutSchedulePage.Align = alClient; LayoutSchedulePage.Visible = False; // İlk başta gizli olacak
lblScheduleTitle = MyForm.AddNewLabel(LayoutSchedulePage, 'lblScheduleTitle', '📅 Etüt Programı'); lblScheduleTitle.Align = alTop; lblScheduleTitle.Margins.Top = 40; lblScheduleTitle.Height = 40; lblScheduleTitle.TextSettings.Font.Size = 24; lblScheduleTitle.TextSettings.Font.Style = [fsBold]; myListView = MyForm.AddNewListView(LayoutSchedulePage, 'myListView'); myListView.Align = alClient; // Listenin boş kalmaması için JSON veri yüklemesi myListView.clLoadListViewDataFromDataset( Clomosy.ClDataSetFromJSON('[{"MAIN_TEXT":"Etüt 1 : Matematik", "SUB_TEXT":"14:00"}]')); // Geri Dön Butonu btnBack = MyForm.AddNewProButton(LayoutSchedulePage, 'btnBack', '⬅ Geri Dön'); btnBack.Align = alBottom; btnBack.Height = 60; btnBack.Margins.Bottom = 30; btnBack.Margins.Left = 30; btnBack.Margins.Right = 30; btnBack.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#EF4444'); btnBack.clProSettings.RoundHeight = 15; btnBack.clProSettings.RoundWidth = 15; btnBack.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); btnBack.clProSettings.FontSize = 16; btnBack.SetclProSettings(btnBack.clProSettings); MyForm.AddNewEvent(btnBack, tbeOnClick, 'GoBack');
MyForm.Run; } Olurdu ama çok daha zahmetli olurdu. Bu satırı kullanmamızın tek bir ana sebebi var: TclListView (gelişmiş liste bileşeni) verileri tek tek eklemek yerine, toplu bir veri paketi olarak almayı sever. Eski komut olan clListViewAddItem ya hata veriyordu ya da listeyi boş bırakıyordu. Çünkü sistem artık "bana veriyi bir veritabanı tablosu gibi bütün olarak ver" diyor. Gerçek bir veritabanı bağlamak şu aşamada uzun süreceği için, biz de veriyi JSON formatında yazıp sahte bir mini-veritabanı tablosuna çevirdik (ClDataSetFromJSON) ve listeye tek seferde yükledik. https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" 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">
|