Załóżmy sytuację: Utworzyłem dynamicznie Button i nadałem mu nazwę guzik; Jak wpisać akcję w zdarzeniach OnClick itp...????
Podczas tworzenia komponentu, gdy ustalasz jego parametry musisz wpisać OnClick := nazwa_procedury(Sender : TObject);
W twoim przypadku będzie to:
Guzik.Onclick := Nazwa_Procedury(Sender : TObject);
Guzik.Onclick := Nazwa_Procedury(Sender : TObject);
Guzik.Onclick:=MetodaObiektu;
BEZ parametrów. I to MUSI być metoda jakiegoś obiektu. Np:
Button2.OnClick:=Form1.OnButtonClick;
Wielkie dzieki :D
public
...
procedure guzikclick(sender:tobject);
...
begin
...
guzik.onclick:=guzikclick;
end.
może tak?
Drajwer: to chyba nie będzie zdarzenie :P tylko zwykła procka. Weżmy pod uwagę, że nie znma wcześniej nazwy komponentu. A swoją drogą :
Jak w wcześniej zadeklarowanej procedurze (zdarzeniu) odwołac sie do nowego komponentu. przykładowo: edit1.text:=guzik.caption?Wcześniej nazwa "guzik" nie była deklarowana, więc wywali error :D
ale jak guzik:tbutton ?
to może być button, Image, label....
To znaczy tak - jeśli chodzi o odwoływanie się:
Edit1.Text:=Guzik.Caption;
To proponuję to zrobić szukaniem - niech znajdzie component TButton, którego name=Guzik, i pobierze jego tekst - powinno się udać.
Mam za to inne pytanie - mam procedurę nowa, ltóa tworzy nowe itemy w popup menu - jak w danej procedurze zadeklarować już OnClick -da się coś takiego zrobić? :-)
procedure klik(sender:tobject);
var
item:tmenuitem;
item:=tmenuitem.create(self);
item.caption:='jakiś caption';
item.onclick:=klik;
menu.items.add(item);
:)
To proponuję to zrobić szukaniem - niech znajdzie component TButton, którego name=Guzik, i pobierze jego tekst - powinno się udać.
FindComponent + F1
Mam za to inne pytanie - mam procedurę nowa, ltóa tworzy nowe itemy w popup menu - jak w danej procedurze zadeklarować już OnClick -da się coś takiego zrobić? :-)
Nie. Jak pisałem - to ma być metoda. Procedura zwykła odpada.