Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Ereignisse von dynamisch erzeugten Menüs
Jojojoxx - Mi 29.08.07 00:08
Titel: Ereignisse von dynamisch erzeugten Menüs
Hallo!
Ich erzeuge in einem Programm während der Laufzeit Einträge eines Untermenüs (TMenuItem).
Wie kann ich das OnClick-Ereignis eines solch dynamisch erzeugten Eintrags abfangen, da ich es ja im Objektinspektor nicht auswählen kann.
Danke für die Hilfe!
mfg
Jojo
Christian S. - Mi 29.08.07 00:25
Einfach eine entsprechende Methode zuweisen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| type TForm1 = class(TForm) procedure MyOnClick(Sender : TObject); end;
...
myMenuItem.OnClick := MyOnClick; |
Ist ausm Kopf geschrieben, kann also fehlerhaft sein. Prinzip dürfte passen
Jojojoxx - Mi 29.08.07 01:49
Hi!
Dann erhalte ich den fehler "Ungenügende Forward- oder External-Deklaration".
mfg
Jojo
Christian S. - Mi 29.08.07 01:53
Du musst MyOnClick schon noch implementieren ...
Jojojoxx - Mi 29.08.07 01:55
Hi!
Habs grad hinbekommen, vielen Dank für deine Hilfe!
mfg
Jojo
Jojojoxx - Mi 29.08.07 02:02
Hi!
Jetzt hab ich ein anderes Problem. Mit Sender wird ja das Objekt übergeben (in meinem Falle also ein TMenuItem).
Aber ich kann wenn ich "Sender." eingebe, nicht die TMenuItem-spezifischen Punkte finden wie Caption usw...
Wie kann ich daran kommen?
Danke!
mfg
Jojo
Christian S. - Mi 29.08.07 02:10
Da der Parameter Sender vom Typ TObject ist, musst Du ihn in ein TMenuItem casten:
Delphi-Quelltext
1:
| TMenuItem(Sender).Caption |
Jojojoxx - Mi 29.08.07 02:11
Super, klappt! :)
Vielen Dank für deine Hilfe zu noch so später (oder eher früher) Stunde :)
mfg
Jojo
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!