![]() |
Untermenü zur Laufzeit erzeugen
Hallo Leute,
weiß jemand, wie man ein Untermenü zur Laufzeit erzeugen kann? Menü-Punkter erzeugen ist kein Problem, aber wie teile ich Delphi mit, daß der Menüeintrag ein Untermenü ist. mfg eddy |
Re: Untermenü zur Laufzeit erzeugen
hmm, du musst ihm das richtige ParentMenue zuordnen !
|
Re: Untermenü zur Laufzeit erzeugen
Meinst du von einem PopupMenu oder einfach nur Tmenu?
Wenn ja probier das hier mal aus:
Delphi-Quellcode:
so in der Art dürfte es funktionieren. Ist ungetestet
var
NeuesMenuItem, NeuesSubmenue : TMenuItem; begin NeuesSubmenue := TMenuItem.Create(Self); NeuesSubmenue .Caption := 'hallo'; menuitem.Add(NeuesSubmenue); //für Menu-Item einfach das Item auswählen, von dem NeuesSubmenue abhängen soll end; |
Re: Untermenü zur Laufzeit erzeugen
Hallo alexander,
danke, genau so legt man einen neuen Menüpunkt an. Doch wie mache ich daraus dann ein Untermenü, welchem dann wieder Menüpunkte zugeordnet werden können? @JoelH ParentMenue ???? mfg eddy |
Re: Untermenü zur Laufzeit erzeugen
Delphi-Quellcode:
Alles klar?
vsPopupAdd := TMenuItem.Create( ... );
vsPopupAdd.Caption := 'Eintrag hinzufügen ...'; vsPopup.Items.Add( vsPopupAdd ); vsPopupAddGroup := TMenuItem.Create( AOwner ); vsPopupAddGroup.Caption := '... Gruppe'; ... vsPopupAdd.Add( vsPopupAddGroup ); |
Re: Untermenü zur Laufzeit erzeugen
genau wie ich das oben gesagt habe??
Du musst nur für MenüITem das passendes MenuItem angeben? |
Re: Untermenü zur Laufzeit erzeugen
Ja, aber
- Dir wurde noch nicht geglaubt :wink: - Doppelt hält besser :roll: |
Re: Untermenü zur Laufzeit erzeugen
klar hält doppelt besser...
war ja auch nicht böse gemeint. Wollte nur wissen was an meinem Code unverständlicher war. |
Re: Untermenü zur Laufzeit erzeugen
Hallo alexander & Tom,
vielen Dank für Eure Hilfe. Doppelt hält besser und letzt endlich habe auch ich es geschnallt. Ein Menüpunkt wird automatisch zur Gruppe, wenn man den nächsten Menüpunkt dort hineinlegt. Hier noch mein auf Euren Anweisungen basierender Testcode:
Delphi-Quellcode:
mfg
procedure TFTermin.BitBtn1Click(Sender: TObject);
var NeuesMenuItem, NeuesSubmenue : TMenuItem; begin //Gruppe hallo anlegen NeuesSubmenue := TMenuItem.Create(self); NeuesSubmenue.Name := 'hallo1'; NeuesSubmenue.Caption := 'hallo'; // test2 vorhandener Menüpunkt TMenuItem test2.Add(NeuesSubmenue); //Menüpunkt hallo2 anlegen NeuesMenuItem := TMenuItem.Create(self); NeuesMenuItem.Name := 'hallo2'; NeuesMenuItem.Caption := 'hallo eins tiefer'; NeuesSubmenue.Add( NeuesMenuItem ); end; eddy [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Re: Untermenü zur Laufzeit erzeugen
Ich versuche gerade, die SubMenü-Einträge aus einer String-Liste zu erzeugen. Leider wird mir - aus mir unerklärlichen Gründen - eine "Menü zweimal vorhanden."-Fehlermeldung zurückgeworfen.
Delphi-Quellcode:
var NeuesMenuItem: TMenuItem;
i:integer; begin NeuesMenuItem := TMenuItem.Create(self); try for i:=0 to 1 do begin NeuesMenuItem.Name := 'Komponente_'+IntToStr(i); NeuesMenuItem.Caption := Accounts.Strings[i]; //Accounts ist eine StringListe AccountWaehlen.Add(NeuesMenuItem); //AccountWaehlen ist das SubMenü, in die die Accounts eingetagen werden sollen end; finally // end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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