Akcja w dynamicznych komponentach

0

Załóżmy sytuację: Utworzyłem dynamicznie Button i nadałem mu nazwę guzik; Jak wpisać akcję w zdarzeniach OnClick itp...????

0

Podczas tworzenia komponentu, gdy ustalasz jego parametry musisz wpisać OnClick := nazwa_procedury(Sender : TObject);

0

W twoim przypadku będzie to:

Guzik.Onclick := Nazwa_Procedury(Sender : TObject);

0

Guzik.Onclick := Nazwa_Procedury(Sender : TObject);

Guzik.Onclick:=MetodaObiektu;

BEZ parametrów. I to MUSI być metoda jakiegoś obiektu. Np:

Button2.OnClick:=Form1.OnButtonClick;

0

Wielkie dzieki :D

0

public
...
procedure guzikclick(sender:tobject);

...

begin
...
guzik.onclick:=guzikclick;

end.

może tak?

0

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

0

ale jak guzik:tbutton ?

0

to może być button, Image, label....

0

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ć? :-)

0

procedure klik(sender:tobject);

var
item:tmenuitem;

item:=tmenuitem.create(self);
item.caption:='jakiś caption';
item.onclick:=klik;
menu.items.add(item);

:)

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1