"twincontrol and tcomponent "create edilen compone

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

"twincontrol and tcomponent "create edilen compone

Mesaj gönderen meron06 »

Sel.al.arkadaşlar.forumdaki bir örneği inceledim ama başaramadım.şimdi şöyle bişey yapmak istiyorum.form umda bi scrollbox ım var .bu scroolbox üzerine 10 adet panel create ediyorum.create ettiğim panellerin parent özelliğne scroolbox ı atıyorum sorunsuz create oluyor .ancak oluşturduğum panellerin üzerine edit ve label create etmek istiyorum.create ediyorum ama örneğin create ettiğim label in parent özelliğine panel i atayamıyorum.bundan dolayıda oluşturduğum editler ve labellar panel üzerinde görüntülenmiyor.bu sorunu nasıl aşarım arkadaşlar.yani create ettiğim panelin ismni bi değişkene alıp bu değişken aaracılığı ile create ettiğim edit ve labellerin parent özelliğine nasıl atarım.forumda bir örnek buldum ama yapamadım arkadaşlar.
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

FindComponent ile Paneli Parent'a atayabilirsiniz.

Örnek kodu şu şekilde oluşturdum ben
(sBox: ScroolBox'un adı)

Kod: Tümünü seç

var
  pnl: TPanel;
  lbl: TLabel;
  i: Integer;
begin
  for i := 1 to 10 do
  begin
    pnl := TPanel.Create(self);
    with pnl do
    begin
      Parent := sBox;
      Align := alTop;
      Name := 'Panel'+IntToStr(i);
      Caption := IntToStr(i);
      Height := 50;
    end;

    lbl := TLabel.Create(self);
    with lbl do
    begin
      Parent := TPanel(Self.FindComponent('Panel'+IntToStr(i)));
      Name := 'Label' + IntToStr(i);
      Caption := 'Yazı ' + IntToStr(i);
      Left := 0;
      Top := 0;
    end;
  end;
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Mesaj gönderen meron06 »

mcel kardeş çalışmadı .herhangi bi hata da vermedi.programı satır satır çalıştırdım.ama yine de labellerim görünmüyor.
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

Şu an yeniden denedim çalışıyor. (Delphi 7 kullanıyorum
Self.FindComponent ' ı scroolbox'un olduğu formun adını vererek bir daha dene, belki procedureyi dışarıdaki bir formdan çalıştırıyor olabilirsin.

Kod: Tümünü seç

.. (frmDeneme.FindComponent(.....))
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Bunun birkaç yolu var.

Birtanesi; Runtime create ettiğin TPanel'lere birer Name ver. Bilahare create ettiğin TLabel vs.lerin Parentine := TPanel(Self.FindComponent('xxxPanelNamexxx')) diye atama yap.

Diğer bir yöntem panelleri ve diğerlerini şu şekilde create edebilirsin:

Kod: Tümünü seç

var
  aPanel: TPanel;
  aLabel: TLabel;
  aEdit: TEdit;
  I: Integer;
begin
  for I := 0 to 10 - 1 do
  begin
    aPanel := TPanel.Create(Self);
    aPanel.Parent := ScrollBox1;
    aPanel.SetBounds(0, 50 * I, 200, 50);
    with TLabel.Create(Self) do
    begin
      Parent := aPanel;
      Caption := 'Test' + IntToStr(I + 1);
      Left := 10;
      Top := 10;
      Visible := TRUE;
    end;
    with TEdit.Create(Self) do
    begin
      Parent := aPanel;
      Text := 'Test' + IntToStr(I + 1);
      Left := 10;
      Top := 30;
      Visible := TRUE;
    end;
  end;
end;
İyi çalışmalar.
Cevapla