Który przycisk klikłem ?

0

mam na formie 10 SpeedButton'ów i chciałbym zrobić jedną procedure która obsłuży te wszystkie SpeedButtony, czyli musiałbym wiedzieć który SpeedButton był ostatnio kliknięty, najlepiej żebym znał numer tego komponenta (components[nr_komponentu]).
ino jak tego dokonać [???]

0

mam na formie 10 SpeedButton'ów i chciałbym zrobić jedną procedure która obsłuży te wszystkie SpeedButtony, czyli musiałbym wiedzieć który SpeedButton był ostatnio kliknięty, najlepiej żebym znał numer tego komponenta (components[nr_komponentu]).
ino jak tego dokonać [???]

Posłuż się właściwością sender:

procedure wcisniecie(sender: TObject);
begin
if sender = speedButton1 then....

i tak dalej...
Ale oczywiście w onClicku każdego buttona musi być:

wcisniecie(speedButton)

0

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr((Sender as TButton).ComponentIndex));
end;

no i oczywiscie j.w. w OnClick dla każdego Buttona
Button1Click(Sender: TObject);

0

oki dzięki. sender to bardzo przydatna funckcja, aż sie dziwie że nie znałem jej wcześniej [wstyd]

0

Tylko czasem warto sprawdzic czy sender to na 100% dany typ komponentu.

0

Ja stosuje właściwość tag. ustawiasz wtedy dla każdego buttona inny, odczytujesz go z sender.

0

Tylko czasem warto sprawdzic czy sender to na 100% dany typ komponentu.

Czyli przed sender as... wstawić if sender is?

tag jest cool:
with (sender as TComponent) do
case tag of
0: ;
end;

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