![]() |
TadvMainMenu
Hallo,
Kann mir einer sagen wie ich zur Laufzeit Untermenü punkte im TadvMain Menu erzeuge.
Delphi-Quellcode:
Der obige Code fügt zwar Menuüunkte ein abder keine Submenüs.
AdvMenu.BeginUpdate;
While not BausteineQry.Eof do begin item := TMenuItem.Create(Self); Item.Caption := BausteineQry.FieldByName('Suchwort').AsString; Item.OnClick := InsertTextbaustein; AdvMenu.Items[3].Insert(7,Item); ----------> Hier musß ein Problem sein BausteineQry.Next; end; AdvMenu.EndUpdate; Vielen Dank schon mal für die Hilfe. |
AW: TadvMainMenu
Bei einem normalen Menu musst du einfach den Namen des Punktes übergeben, welches der Ausgangspunkt des Untermenus sein soll. Das müsste bei TMS auch so sein.
Bei mir sieht das so aus:
Delphi-Quellcode:
NewItem := TMenuItem.Create(NamedesMenuüunktes); //<-- hier kein self
|
AW: TadvMainMenu
Hallo,
hab ich mal abgeändert, mit dem gleichen Ergebnis. Es werden immer Menu punkte aber keine Submenüpunkte erstellt. |
AW: TadvMainMenu
Mit TMS geht es auch bei mir nicht.
Dann vielleicht in den Newsgroup von TMS nachfragen. |
AW: TadvMainMenu
Hallo,
Zitat:
Soll Deine Menüstruktur in etwa so aussehen?
Code:
Oder sollte es in etwa so aussehen:
Datei | Bearbeiten | Ansicht | Textbausteine <-- AdvMenu.Items [3]
Neu... <-- AdvMenu.Items [3].Items [0] Öffnen... <-- AdvMenu.Items [3].Items [1] Löschen... <-- AdvMenu.Items [3].Items [2] Organisieren... <-- AdvMenu.Items [3].Items [3] Reorganisieren... <-- AdvMenu.Items [3].Items [4] Zerlegen... <-- AdvMenu.Items [3].Items [5] Zusammenführen... <-- AdvMenu.Items [3].Items [6] <-- hier was einfügen ??
Code:
Wenn ich Deinen Post richtig interpretiere, dann möchtest Du etwas wie in Variante II erreichen - oder(?) -, und: Dann,
Datei | Bearbeiten | Ansicht | Extras <-- AdvMenu.Items [3]
Extra (0) Extra (1) Extra (2) Extra (3) Extra (4) Extra (5) Extra (6) Textbausteine <-- AdvMenu.Items [3].Items [7] Textbaustein (0) <-- ab hier was einfügen ?? Textbaustein (1)
Delphi-Quellcode:
hast Du das schon richtig erkannt.
AdvMenu.BeginUpdate;
While not BausteineQry.Eof do begin [...] AdvMenu.Items[3].Insert(7,Item); ----------> Hier musß ein Problem sein [...] end; AdvMenu.EndUpdate; Es könnte:
Delphi-Quellcode:
in die richtige Richtung gehen.
AdvMenu.BeginUpdate;
While not BausteineQry.Eof do begin [...] AdvMenu.Items [3].Items [7].Add (Item); [...] end; AdvMenu.EndUpdate; Allerdings würde ich auf die hardcodierten Indizes verzichten und die Referenz des entsprechende Menüpunkts zur Laufzeit ermitteln; also irgendwie so:
Delphi-Quellcode:
Aber, das ist alles stochern im Nebel. Vielleicht bringst Du mal etwas Licht (Erläuterung, Screenshot, etc.) in die Geschichte.
procedure TForm.AddTextBlockItems;
var p : TMenuItem; begin p := GetTextBlockMainItem; AdvMenu.BeginUpdate; try while not BausteineQry.Eof do begin item := TMenuItem.Create (nil); item.Caption := BausteineQry.FieldByName('Suchwort').AsString; item.OnClick := InsertTextbaustein; p.Add (Item); BausteineQry.Next end finally AdvMenu.EndUpdate end end; Gruß |
AW: TadvMainMenu
Danke Volker,
diese Zeile war der entscheidende Tipp: AdvMenu.Items [3].Items [7].Add (Item); Nun funktioniert alles richtig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 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