hi
du kannst eine onKlick-Prozedur erstellen und dann im
OI für alle buttons dieses onKlick-Ereignis einstellen. egal welchen button man klickt, es wird immer diese prozedur aufgerufen...
und rate mal was der parameter Sender bringt?
genau, hier steht das Objekt der dieses event ausgelöst hat, also der button auf den geklickt wurde.
blöd nur das der von typ TObject ist. aber du kannst ganz einfach casten:
Delphi-Quellcode:
procedure TKeyboardfenster.MGKeyboardbuttonClick(Sender: TObject);
var
GecklickterButton: TButton;
begin
if (Sender is TButton) then
begin
GecklickterButton := (Sender as TButton);
GecklickterButton.caption := 'Ich wurde geklickt!';
end;
end;
das verändert zB die caption des geklickten buttons. alternativ und ohne zusätzliche variable geht auch:
Delphi-Quellcode:
procedure TKeyboardfenster.MGKeyboardbuttonClick(Sender: TObject);
begin
if (Sender is TButton) then
(Sender as TButton).caption := 'Ich auch...';
end;
außerdem kannst du jedem button einen TAG geben, dh du schreibst (am besten im IO) in deinen ersten Button1.tag := 1 und in den zweiten 2 usw dann kannst ganz leicht schauen welcher button geklickt wurde:
if GecklickterButton.tag = 5 then // 5.button wurde angeklickt