Który przycisk klikłem ?

Który przycisk klikłem ?
Japcok
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 699
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ć [???]

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
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)

b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
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);

Japcok
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 699
0

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

Igorz
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 278
0

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

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0

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

Johnny_Bit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kielce
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;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.