Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - tanımsız nesne hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

tanımsız nesne hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
ErenTotan Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 2 Saat 4 Dakika Önce
Konum: Konya
Durum: Aktif Değil
Puanlar: 2
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı ErenTotan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: tanımsız nesne hatası
    Gönderim Zamanı: 2 Saat 2 Dakika Önce Saat 16:11
var
  MyForm: TclForm;
  lblTitle: TclLabel;
  btnDailySchedule, btnStudentList: TclProButton;
  ScheduleForm: TclForm; 
  clListViewAddItem:TclListView;

procedure GoBack;
begin
ScheduleForm.Close;
end;


procedure GoToSchedule;
var // 1. HATA: Buraya 'var' yazmayı unutmuştuk
  lblScheduleTitle: TclLabel;
  btnBack: TclProButton;
  myListView: TclListView;
begin
  ScheduleForm := TclForm.Create(Self);
  
  // 2. HATA: Bu satırın sonundaki noktalı virgül (;) eksikti
  lblScheduleTitle := ScheduleForm.AddNewLabel(ScheduleForm,'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:= ScheduleForm.AddNewListView(ScheduleForm,'myListView');
  myListView.Align:=alClient
  ScheduleForm.clListViewAddItem(myListView,'clText','Etüt 1 : Matematik','14:00',' ');
  btnBack := ScheduleForm.AddNewProButton(ScheduleForm,'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);
  
  ScheduleForm.AddNewEvent(btnBack, tbeOnClick, 'GoBack');
  
  ScheduleForm.Run;
end;

begin
  MyForm := TclForm.Create(Self);
  
  // Başlık Alanı
  lblTitle := MyForm.AddNewLabel(MyForm, '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(MyForm, '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);

  // 3. EKSİK: Tetiği (Event) buraya ekledik ki butona basınca sayfa açılsın
  MyForm.AddNewEvent(btnDailySchedule, tbeOnClick, 'GoToSchedule');

  // Öğrenci Listesi Pro Butonu
  btnStudentList := MyForm.AddNewProButton(MyForm, '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);

  MyForm.Run;
end;
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">
Yukarı Dön
kayra12 Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 23 Aralık 2024
Durum: Aktif Değil
Puanlar: 51
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kayra12 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 1 saat 25 Dakika Önce Saat 16:48
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" 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">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,039 Saniyede Yüklendi.