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