Hallo,
ich lasse mir in meiner Form aus einer Textdatei eine variable Anzahl an Buttons erzeugen, denen ich eine Onclick-Ereignis zuordne:
procedure TForm1.BitBtnClick(Sender: TObject);
var i:integer;
begin
for i:=0 to current do
if sender = TButton(FindComponent('MyOwnButton' + IntToStr(i))) then
Begin
//mach dies und das..
End;
end;
Das funktioniert auch sehr schön.
Im eigentlich "Create" der Buttons weise ich den Buttons noch das gleiche PopUpMenu zu.
MyButtons.name := 'MyOwnButton'+inttostr(RechnerIndex);
MyButtons.OnClick := Form1.BitBtnClick;
MyButtons.PopupMenu := Form1.ButtonMenu;
Jetzt will ich auf dieses Popupmenu je nach gedrücktem Button reagieren.
Woher weiß ich, welcher Button das Menu "aufgerufen" hat, da ja der Sender in der Ereignisroutine des PopUpMenu ein "Menus" ist?
Da funktioniert die Abfrage per .... "if Sender = TButton.... ja nicht.
Ich stehe irgendwie auf dem Schlauch.
EDIT: beholfen habe ich mich nem kleinen "Trick": Ich verwende nun das Ereignis
OnMouseEnter
der Buttons um diese zu identifizieren. Aber das muss doch auch anders gehen?!?