Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - für dynamisch erzeugte Menüeinträge per onClick reagieren
greyhound - Sa 25.10.03 17:50
Titel: für dynamisch erzeugte Menüeinträge per onClick reagieren
Hi Leute,
ich erzeuge mehrere TMenuItems zur Laufzeit
mit
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| for i:=0 to x do begin DynItem[i]:=TMenuItem.create(self); DynItem[i].Caption:=xy; DynItem[i].OnClick:=MenuItemClick; Popupmenu.add(DynItem[i]); end; |
dazu habe ich die Ereignisbehandlung MenuItemClick:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.MenuItemClick(Sender: TObject); begin [...] end; |
und in dieser Routine will ich nun an die Caption des Eintrages, der geklickt wurde.
Leider kann ich über die <sender>-Variable auf nichts nennenswertes zugreifen.
Danke für Hilfe im Voraus,
greyhound
Moderiert von
Tino: Delphi-Tags hinzugefügt.
Delete - Sa 25.10.03 18:11
as ist das Zauberwort. Mit nur einem S, nicht dass du jetzt schimpfst, ich hätte ich Ar*** genannt. ;)
Also, wenn der Sender ein Menüitem
ist, dann behandle ihn
als solchen, und schon hast du Zugriff auf die Eigenschaften. Und jetzt das ganze noch mal in Code:
Delphi-Quelltext
1: 2:
| if(Sender is TMenuItem) then ShowMessage((Sender as TMenuItem).Caption); |
Gut, was? :mrgreen:
patrick - Sa 25.10.03 18:12
ruf doch bei onclick deine eigene routine auf:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| for i:=0 to x do begin DynItem[i]:=TMenuItem.create(self); DynItem[i].Caption:=xy; DynItem[i].OnClick:=Showcaption(i); Popupmenu.add(DynItem[i]); end; |
und so sieht deine routine aus:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Showcaption(SelObject:integer):string; begin result:=DynItem[SelObject].Caption; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!