"twincontrol and tcomponent "create edilen compone
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
"twincontrol and tcomponent "create edilen compone
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.
FindComponent ile Paneli Parent'a atayabilirsiniz.
Örnek kodu şu şekilde oluşturdum ben
(sBox: ScroolBox'un adı)
Ö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;
Ş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.
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(.....))
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:
İyi çalışmalar.
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;