![]() |
MainMenu
Hallo!
Ich habe ein MainMenu mit mehreren Einträgen und auch Untermenus. Wenn ich auf ein Untermenu klicke, möchte ich eine Anweisung ausführen. Nun möchte ich für eine case-Anweisung wissen, welches Untermenu ausgewählt wurde.
Delphi-Quellcode:
Schon mal Danke im Vorraus.
case MainMenu.??? of
0 : Anweisung1; 1 : Anweisung2; 2 : Anweisung3; 3 : Anweisung4; end; Gruß SvenT |
Re: MainMenu
Delphi-Quellcode:
In das gemeinsame Click-Ereignis
if Sender = mnuFileNew then ???
else if Sender = mnuFileOpen then ??? else if Sender = mnuFileSave then ???; |
Re: MainMenu
Oder setz die Tag-Eigenschaft und mach es mit case.
|
Re: MainMenu
Was spricht dagegen, jeweils eine OnClick-Behandlungsroutine zu verwenden?
Wenn sie relativ gleichen Code verwenden sollten, könntest Du das hinbekommen, in sie eine zentrale Methode mit einem geeigneten Parameter aufrufen. Vorteil: Du kannst die Logik (hier: die zentrale Methode) ohne Wissen um die Menüeinträge (und deren Namen oder Tag-Werte) entwickeln, sie von anderen Punkten aus verwenden, vielleicht sogar ohne ein Fenster. Später können beliebig viele Routinene diese Methode nutzen, zB auch, wenn Du Dich entscheidest, das plötzlich auch ein Button die Logik verwenden soll, oder das Verlassen eines Edit-Feldes zunächst die Methode mit dem Parameter Foo und anschließend mit dem Parameter Bar aufruft... |
Re: MainMenu
Danke für die schnellen Antworten. Mit dem Sender hatte ich das auch schon. Mit dem Tag hat es bei mir nicht geklappt. Dann werde ich das mit dem Sender machen.
|
Re: MainMenu
So geht es:
Delphi-Quellcode:
Und das jedem MenüItem zuweisen.
procedure TForm1.MenuClick(Sender: TObject);
var s: string; begin if (Sender is TMenuItem) then begin case (Sender as TMenuItem).Tag of 1: s := (Sender as TMenuItem).Caption; 2: s := (Sender as TMenuItem).Caption; end; ShowMessage(s); end; end; |
Re: MainMenu
Hi Luckie!
Super! Genau das wollte ich. Danke für die Antwort. Aber auch den anderen ein dickes Dankeschön. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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 by Thomas Breitkreuz