Runtime Oluşturulan Labelleri Alt Alta Gösterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
jackz
Üye
Mesajlar: 7
Kayıt: 02 May 2017 09:49

Runtime Oluşturulan Labelleri Alt Alta Gösterme

Mesaj gönderen jackz »

Merhaba, hazırladığım restoran programında main form dışında menü formu ve fiş formu olmak üzere 3 form var. Menü formunda checklistox'tan seçilen siparşleri fiş kesme formuna geldiğimizde yeni labellar olşturarak alt alta göstermeye çalışıyorum fakat hepsi üst üste görünüyor yardımcı olur musunuz..

Kod: Tümünü seç

procedure TformFis.FormActivate(Sender: TObject);
var
i:integer;
begin
satirsayisi:=formMenu.CheckListBox1.Count-1;
for i:=0 to satirsayisi do
  begin
  if formMenu.CheckListBox1.Checked[i]=true then
    begin
    Lab:=TLabel.Create(formFis);
    Lab.Parent:=formFis.GroupBox1;
    Lab.Caption:=formMenu.CheckListBox1.Items[i];
    Lab.Left:=10;
    Lab.Top:=24;
    end;
Lab.Top:=Lab.Top+24;
  end;
end;
son kısımda "Lab.Top:=Lab.Top+24;" kodunu koymadığım zaman üst üste görünüyorlar. Koyunca ise şu hatayı veriyor:
Debugger Exception Notification
Project Project1.exe raised exception class EAccessVioIation with message 'Access violation at address 0045862F in module 'Project1.exe1'. Read of address 00000044'. Process stopped. Use Step or Run to continue.
jackz
Üye
Mesajlar: 7
Kayıt: 02 May 2017 09:49

Re: Runtime Oluşturulan Labelleri Alt Alta Gösterme

Mesaj gönderen jackz »

fatihbarut yazdı:merhaba
artma değerini direkt lab.top'a değilde bir ara değişkene atamayı denediniz mi?
Daha açık bir şekilde açıklayabilir misiniz lütfen. Ne yapmam gerektiğini tam olarak anlamadım.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Runtime Oluşturulan Labelleri Alt Alta Gösterme

Mesaj gönderen xozcanx »

Kod: Tümünü seç

procedure TformFis.FormActivate(Sender: TObject);
var
  i,ilkkonumTop:integer;
begin
  ilkkonumTop:=24;
  satirsayisi:=formMenu.CheckListBox1.Count-1;
  for i:=0 to satirsayisi do
  begin
    if formMenu.CheckListBox1.Checked[i]=true then
    begin
      Lab         :=TLabel.Create(formFis);
      Lab.Parent  :=formFis.GroupBox1;
      Lab.Caption :=formMenu.CheckListBox1.Items[i];
      Lab.Left    :=10;
      Lab.Top     :=ilkkonumTop;
      ilkkonumTop :=ilkkonumTop+24;
    end;
  end;
End;
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
jackz
Üye
Mesajlar: 7
Kayıt: 02 May 2017 09:49

Re: Runtime Oluşturulan Labelleri Alt Alta Gösterme

Mesaj gönderen jackz »

xozcanx yazdı:

Kod: Tümünü seç

procedure TformFis.FormActivate(Sender: TObject);
var
  i,ilkkonumTop:integer;
begin
  ilkkonumTop:=24;
  satirsayisi:=formMenu.CheckListBox1.Count-1;
  for i:=0 to satirsayisi do
  begin
    if formMenu.CheckListBox1.Checked[i]=true then
    begin
      Lab         :=TLabel.Create(formFis);
      Lab.Parent  :=formFis.GroupBox1;
      Lab.Caption :=formMenu.CheckListBox1.Items[i];
      Lab.Left    :=10;
      Lab.Top     :=ilkkonumTop;
      ilkkonumTop :=ilkkonumTop+24;
    end;
  end;
End;
Çok teşekkür ederim ilgilenip yardım ettiğiniz için. Oldu böylece.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Runtime Oluşturulan Labelleri Alt Alta Gösterme

Mesaj gönderen greenegitim »

flowpaneli de inceleyebilirsiniz.
Mücadele güzelleştirir!
Cevapla