Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - İç içe for ile form nesnelerinin kullanımı
  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.

İç içe for ile form nesnelerinin kullanımı

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


Kayıt Tarihi: 19 Temmuz 2023
Durum: Aktif Değil
Puanlar: 10
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı ubakgul Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: İç içe for ile form nesnelerinin kullanımı
    Gönderim Zamanı: 24 Temmuz 2023 Saat 13:56
Merhaba,

İç içe for döngüsü kullanarak matris oluşturmaya çalışıyorum. Kodlar ve karşılaştığım sorunlar aşağıdaki gibidir. 
Matriste alt satıra geçmek için satirLyt kullandım. Sütunları oluşturmak için satirLyt içine sutunLyt ekledim. SutunLyt içine butonları ekliyorum. Resimlerde görüldüğü gibi sütunda ve satırda ilk değeri yazdıktan sonra son değerden başlayarak buton ekliyor. Bu sorun nasıl düzeltilebilir? 
sutunLyt ve alanBtn eklerken içine eklediğim alanların isimleri (satirLyt ve sutunLyt), i ve j değerleriyle birlikte değişebilirse sorunun çözülebileceğini düşünüyorum. Bu form değişkenlerinin i ve j ile birlikte kullanımı var mı, varsa nasıl kullanabilirim?

      

var
  MyForm:TclForm;
  satirLyt,sutunLyt:TClLayout;
  arkaPnl,p1:TCLPanel;
  alanBtn: TCLButton;
  i,j:Integer;

begin
  MyForm := TclForm.Create(Self);
  
  arkaPnl:=MyForm.AddNewProPanel(MyForm,'arkaPnl');
  clComponent.SetupComponent(arkaPnl,'{"Align" : "Client","BackgroundColor":"#EEE8AA"}');
  
  p1:=MyForm.AddNewProPanel(arkaPnl,'p1');
  clComponent.SetupComponent(p1,'{"Align" : "Client","BackgroundColor":"#EEE8AA"}');
  
  for i:= 0 to 4 do begin 
    satirLyt:=MyForm.AddNewLayout(p1,'satirLyt'+IntToStr(i));
    for j:=0 to 4 do begin
      sutunLyt:=MyForm.AddNewLayout(satirLyt,'sutunLyt'+IntToStr(i)+IntToStr(j));
      sutunLyt.Align:=alleft;
      sutunLyt.Width:=30;
      sutunLyt.Height:=30;
      alanBtn:=MyForm.AddNewProButton(sutunLyt,'alanBtn'+IntToStr(i)+IntToStr(j),IntToStr(j));
      clComponent.SetupComponent(alanBtn,'{"Align" : "left","Width" :50, "Height":50, "BorderColor":"#000000","BorderWidth":1, "BackgroundColor":"#ffffff"}');
    end;
  end;
  
 MyForm.Run;
end;
Yukarı Dön
ztashia Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi
Simge

Kayıt Tarihi: 25 Mayıs 2023
Konum: Türkiye/Konya
Durum: Aktif Değil
Puanlar: 20
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı ztashia Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 24 Temmuz 2023 Saat 15:47
Merhaba,

Aşağıda ki kodda çözümü bulabilirsiniz.

Yapılan Değişiklikler;
  • Butona tıklandığında hangi butona tıklandığını gösteren event eklendi.
  • Align hataları düzeltildi.

********************************************************************************
var
  MyForm:TclForm;
  satirLyt,sutunLyt:TClLayout;
  arkaPnl,p1:TCLPanel;
  alanBtn: TCLButton;
  i,j:Integer;
  procedure alanBtnOnClick;
  begin
    ShowMessage(TCLButton(MyForm.ClSender).Text);
  end;

begin
  MyForm := TclForm.Create(Self);
  
  arkaPnl:=MyForm.AddNewProPanel(MyForm,'arkaPnl');
  clComponent.SetupComponent(arkaPnl,'{"Align" : "Client","BackgroundColor":"#EEE8AA"}');
  
  p1:=MyForm.AddNewProPanel(arkaPnl,'p1');
  clComponent.SetupComponent(p1,'{"Align" : "Client","BackgroundColor":"#EEE8AA"}');
  
  for i:= 0 to 4 do begin 
    satirLyt:=MyForm.AddNewLayout(p1,'satirLyt'+IntToStr(i));
    satirLyt.Align:=alMostTop;
    for j:=0 to 4 do begin
      sutunLyt:=MyForm.AddNewLayout(satirLyt,'sutunLyt'+IntToStr(i)+IntToStr(j));
      sutunLyt.Align:=alMostleft;
      sutunLyt.Width:=30;
      sutunLyt.Height:=30;
      alanBtn:=MyForm.AddNewProButton(sutunLyt,'alanBtn'+IntToStr(i)+IntToStr(j),IntToStr(I)+' - '+IntToStr(j));
      clComponent.SetupComponent(alanBtn,'{"Align" : "client","Width" :50, "Height":50, "BorderColor":"#000000","BorderWidth":1, "BackgroundColor":"#ffffff"}');
      MyForm.AddNewEvent(alanBtn,tbeOnClick,'alanBtnOnClick');
    end;
  end;
  
 MyForm.Run;
end;
********************************************************************************

İyi Günler.
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,063 Saniyede Yüklendi.