![]() |
PopUpMenu: Komp. erstellen und dieser ein SubMenu erzeugen
Hallöchen,
ich habe folgendes Problem: Und zwar erstelle ich zur Laufzeit Einträge in einem PopUpMenu...
Delphi-Quellcode:
Das funktioniert soweit, allerdings schaffe ich es nicht, einer dieser Einträge ein SubMenu zuzuweisen. Ich habe es so versucht:
for i:=0 to StringListe.Count-1 do
begin NeuesMenuItem := TMenuItem.Create(self); Inc(ItemCount); NeuesMenuItem.Name := 'Komponente_'+IntToStr(i); NeuesMenuItem.Caption := StringListe.Strings[i]; PopUpUnterMenue1.Add(NeuesMenuItem); NeuesMenuItem.Tag:=ItemCount; NeuesMenuItem.OnClick:=PopupItemClick; end;
Delphi-Quellcode:
Ich hab hier schon im Forum gesucht, aber nichts Sinnvolles finden können. Ich hab es mit FindComponent versucht und so und so und hin und her. In OOP-Programmierung bin ich nicht so gut geschult :angel:
StringListe2:=TStringList.Create;
for i:=0 to StringListe.Count-2 do begin StringListe2.Clear; //Wird später erweitert, sollte jetzt nicht von Belang sein StringListe2.Add('String1'); StringListe2.Add('String2'); StringListe2.Add('String3'); for x:=1 to StringListe2.Count-1 do begin NeuesMenuItem := TMenuItem.Create(TPopUpMenu(FindComponent('Komponente_'+IntToStr(i)))); Inc(ItemCount); NeuesMenuItem.Name:='Komponente_'+IntToStr(i*100+x); NeuesMenuItem.Caption:=StringListe2.Strings[x]; NeuesMenuItem.Tag:=ItemCount; // TPopUpMenu(FindComponent('Komponente_'+IntToStr(i))).Items.Add('Komponente_'+IntToStr(i*100+x)); //Funktioniert nicht ;-) NeuesMenuItem.OnClick:=PopUpItemClick; end; end; StringListe2.Free; Vielen Dank für eure Hilfe! |
Re: PopUpMenu: Komp. erstellen und dieser ein SubMenu erzeug
Moin moin
mal ein kurzes Beispiel:
Delphi-Quellcode:
.
. var myMenu : TPopupmenu; item1, item2 : TMenuItem; . . begin . . myMenu := TPopupmenu.create(self); item1 := TMenuItem.create(self); item2 := TMenuItem.create(self); . . item2.caption := 'Blatt'; item1.Caption := 'Wurzel'; item1.Add(item2); myMenu.Items.Add(item1); . . end; Dadurch wird ein Menü mit dem Eintrag "Wurzel" erstellt, der einen Untereintrag "Blatt" hat. Hoffe Dir geholfen zu haben.. schönen Gruß Sam |
Re: PopUpMenu: Komp. erstellen und dieser ein SubMenu erzeug
Na ja, das Problem ist, dass ich keine feste Anzahl an Items hab, denen ich etwas zuweisen will. Das wird dynamisch während der Laufzeit festgestellt und erzeugt. Und im Builder kann ich nicht sagen
Delphi-Quellcode:
.add('Komponente_'+IntToStr(i));
|
Re: PopUpMenu: Komp. erstellen und dieser ein SubMenu erzeug
Dann nim
Delphi-Quellcode:
(FindComponent('Komponente_'+IntToStr(i)) as TMenuItem)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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