![]() |
Menü zur Laufzeit erstellen
Tach,
ich hab folgendes Problem: In einem Programm an dem ich arbeite werden zur Laufzeit neue Menüpunkte erzeugt. Wie fange kann ich ein OnClick Ereignis bei diesen Menüpunkten abfangen? |
Re: Menü zur Laufzeit erstellen
Heinfach nach erzeugen die Event-Properties setzten.
|
Re: Menü zur Laufzeit erstellen
Zitat:
wenn man das tut, über die einzig mir bekannte methode:
Delphi-Quellcode:
Bekommt man leider keinen Sender mitgeliefert. Also müsste er für jedes MenuItem eine eigene Procedure anlegen -> schlecht ... aber dazu, wie man das "richtig" realisiert fällt mir leider grad nix ein ... ^^
@menuitem.OnClick := @MenuItemClick;
ciao, Philipp |
Re: Menü zur Laufzeit erstellen
Warum
Zitat:
Delphi-Quellcode:
form.menuclick( sender: TObject);
begin end; menuitem.onClick = menuclick; |
Re: Menü zur Laufzeit erstellen
Zitat:
ciao, Philipp |
Re: Menü zur Laufzeit erstellen
Habs ausprobiert. Funktioniert!
|
Re: Menü zur Laufzeit erstellen
Jo funktioniert. danke.
Aber wenn ich mehrere Menuitems erstelle, die dann die gleiche prozedur aufrufen, woher weiß ich denn auf welchen eintrag geklickt wurde, um darauf reagieren zu können? |
Re: Menü zur Laufzeit erstellen
Der wird dir doch als Sender übergeben:
Delphi-Quellcode:
Gruß Hawkeye
procedure TForm1.MenuClick (Sender: TObject);
begin ShowMessage ((Sender as TMenuItem).Caption); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz