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

mnbvcX

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/download/1/8/b/18b360d9-e383-4128-a444-309e140713dd/forms.doc

0 komentarzy