Jak dodać nowy element na formę kodem? Chodzi mi o to by dopiero po naciśnięciu jakiegoś przycisku albo co, tworzył mi się nowy obiekt np. TImage.
na formatce:
Lb:TLabel;
pod przyciskiem
Lb:=TLabel.Create(Self);
Lb.Caption:='Abc';
Lb.Top:=4;
Lb.Left:=4;
Lb.Parent:=Self; // może być też jakiś Panel czy GroupBox
Dzięki, działa ;)
A jak dodać eventy takiemu elementowi?? Np.: OnClick??
tak sobie trochę tu kompinowałem i znalazłem, że mogę dopisać sobie coś takiego Lb.OnClick
i w nawiasie ustawić parametr, tylko nie wiem co wpisać w tym nawiasie
Stworzyć procedurę:
procedure TForm1.LbOnClick(Sender:TObject);
begin
//
end;
podpiąc:
Lb.OnClick:=LbOnClick;
Dzięki!! Zostałem nakierowany na dobre tory i dalej już uda mi się poradzić z tym samemu ;)
No może jednak nie do końca - a jeśli stworzę kilka obiektów i do nich chcę osobno przypisać operacje??
Przypisać musisz osobno ale możesz podpiąć tą samą procedurę:
Lb1.OnClick:=LbOnClick;
Lb2.OnClick:=LbOnClick;
procedure TForm1.LbOnClick(Sender:TObject);
begin
if Sender=Lb1 then ...
else if Sender=Lb2 then
end;
lub też użyć Tag:
Lb1.OnClick:=LbOnClick;
Lb1.Tag:=1;
Lb2.OnClick:=LbOnClick;
Lb2.Tag:=2;
procedure TForm1.LbOnClick(Sender:TObject);
begin
case TLabel(Sender).Tag of
1: ...
2: ...
end;
end;
Zresztą nawet tworzyć możesz w tablice:
Tb:array[0..5]of TLabel;
for I:=0 to 5 do
begin
Tb[I]:=TLabel.Create(Self);
Tb[I].Parent:=Self;
Tb[I].Tag:=I;
Tb[I].OnClick:=LbOnClick;
end;
aha, ok
_13th_Dragon napisał(a):
Zresztą nawet tworzyć możesz w tablice:
nawet tak już miałem :D