Programowanie w języku Delphi » FAQ

Jak sprawdzić który Button naciśnięto

  • 2008-08-04 18:03
  • 0 komentarzy
  • 853 odsłony
  • Oceń ten tekst jako pierwszy
Przyjmijmy, że mamy 100 komponentów Button i chcemy po naciśnięciu coś sprawdzić itp.


Najlepszym sposobem jest wykonanie rzutowania. Wszystkim Buttonom przypisujemy jedno zdarzenie do OnClick. Piszemy:

procedure TForm1.ButtonClick(Sender: TObject);
var
  btn: TButton;
  ButtonName: String;
begin
  btn := TButton(Sender);  //rzutujemy TObject na TButton
  ButtonName := btn.Name;  //przypisujemy nazwę klikniętego
end;

Od tej chwili ButtonName przechowuje nazwę klikniętego Buttona.

Można też użyć wartości Tag komponentu. Nie ma on żadnego wpływu na działanie programu, więc można go ustawić do identyfikacji Buttona. I tak ustawiamy dla Button1 Tag 1, dla Button2 Tag 2 itd.
Potem Tag uzyskuje się w ten sposób:
jakaś_tam_wartość_identyfikująca_przycisk := TButton(Sender).Tag;


Źródło: http://download.microsoft.com/[...]28-a444-309e140713dd/forms.doc