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ć [???]
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)
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);
oki dzięki. sender to bardzo przydatna funckcja, aż sie dziwie że nie znałem jej wcześniej [wstyd]
Tylko czasem warto sprawdzic czy sender to na 100% dany typ komponentu.
Ja stosuje właściwość tag. ustawiasz wtedy dla każdego buttona inny, odczytujesz go z sender.
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;