Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie müssen neue Submenüs angesprochen werden ?? (https://www.delphipraxis.net/6767-wie-muessen-neue-submenues-angesprochen-werden.html)

Didinator 21. Jul 2003 21:15


Wie müssen neue Submenüs angesprochen werden ??
 
Hallo!

wie kann ich denn die Untermenüs die ich zur Laufzeit erzeugt habe abfragen ?? (Codebeispiel wie ich die Menü's erzeugt habe, siehe unten! (ist aus einem vorherigen Thread!))

Danke,

Dieter
Delphi-Quellcode:
var
  NeuesMenuItem, NeuesSubmenue : TMenuItem;
begin
NeuesSubmenue := TMenuItem.Create(Self);
NeuesSubmenue .Caption := 'hallo';
menuitem.Add(NeuesSubmenue);
end;
[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

Christian Seehase 21. Jul 2003 21:24

Re: Wie müssen neue Submenüs angesprochen werden ??
 
Moin Dieter,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Wenn Du einen Menüpunkt dynamisch generierst kannst Du ihm auf (mindestens, mehr fallen mir im Moment nicht ein) zwei Arten die Routine zuweisen, die über den Menüpunkt ausgeführt werden sollen.
  1. Du weist der Eigenschaft OnClick die entsprechende Routine zu
  2. Du benutzt eine TActionList, und weist der Eigenschaft Action die gewünschte Action aus der Liste zu.

Ich persönlich würde die zweite Variante bevorzugen, da man die verschiedenen Aktionen an verschiedenen Stellen verwenden kann (z.B. Hauptmenü, PopupMenü), zum anderen kann man sich dann im Code noch weitere Einstellungen des Menüpunktes sparen, wie z.b. den Hinttext, oder auch einen ShortCut. Dies wird alles automatisch der zugewiesenen Aktion entnommen.

Didinator 22. Jul 2003 17:14

Re: Wie müssen neue Submenüs angesprochen werden ??
 
Hi! und vielen Dank erstmal ...

tja . leider bin ich noch recht neu in Sachen Delphi Programmierung .. deswegen wäre es nicht schlecht wenn ich da ein paar Zeilen Code bekommen könnte .. :D

Danke ...

Gruß, Dieter

Christian Seehase 22. Jul 2003 20:37

Re: Wie müssen neue Submenüs angesprochen werden ??
 
Moin Dieter,

für Variante 1 sähe das so aus:

Delphi-Quellcode:
// Im Formular wird manuell eine Methode angelegt
TForm1 = class(TForm)
  //... andere Prozeduren usw.
  procedure NeuesMenuItemClick(Sender: TObject);
  // ...
end;

//...

implementation

procedure TForm1.NeuesMenuItemClick(Sender: TObject);
begin
  // was beim Click auf das Item geschehen soll
end;

// in der Prozedur die das Item erzeugt:
NeuesSubmenue.OnClick := NeuesMenuItemClick;
und bei Variante 2 müsstest Du Dir noch eine ActionList auf das Formular legen, eine Action erzeugen, und dann für diese Action eine OnExecute Methode.

Delphi-Quellcode:
// in der Prozedur die das Item erzeugt:
NeuesSubmenue.Action := Action1;

Didinator 23. Jul 2003 15:07

Re: Wie müssen neue Submenüs angesprochen werden ??
 
Alles klar ..

werds ausprobieren ...

Danke nochmals ..

Dieter

st2000 19. Aug 2003 10:40

Re: Wie müssen neue Submenüs angesprochen werden ??
 
Übrigens, zur Methode 2 (Nutzung von TActions) :

Wenn kein Eventhandler für OnExecute der TAction definiert ist, bleibt das assoziierte Menuitem disabled (also grau) :witch: .

Hab das nicht gewusst und mir einen Wolf programmiert....

Spart evtl. dem einen oder anderen einen Irrweg....

Gruss aus Hamburg...

ST2000


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz