Hallo,
Zitat:
Kann mir einer sagen wie ich zur Laufzeit Untermenü punkte im TadvMain Menu erzeuge
Delphi-Quellcode:
[...]
AdvMenu.Items[3].Insert(7,Item);
Der obige Code fügt zwar Menuüunkte ein abder keine Submenüs
Was willst Du den eigentlich erreichen?
Soll Deine Menüstruktur in etwa so aussehen?
Code:
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 ??
Oder sollte es in etwa so aussehen:
Code:
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)
Wenn ich Deinen Post richtig interpretiere, dann möchtest Du etwas wie in Variante II erreichen - oder(?) -, und: Dann,
Delphi-Quellcode:
AdvMenu.BeginUpdate;
While not BausteineQry.Eof do
begin
[...]
AdvMenu.Items[3].Insert(7,Item); ----------> Hier musß ein Problem sein
[...]
end;
AdvMenu.EndUpdate;
hast Du das schon richtig erkannt.
Es könnte:
Delphi-Quellcode:
AdvMenu.BeginUpdate;
While not BausteineQry.Eof do
begin
[...]
AdvMenu.Items [3].Items [7].Add (Item);
[...]
end;
AdvMenu.EndUpdate;
in die richtige Richtung gehen.
Allerdings würde ich auf die hardcodierten Indizes verzichten und die Referenz des entsprechende Menüpunkts zur Laufzeit ermitteln; also irgendwie so:
Delphi-Quellcode:
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;
Aber, das ist alles stochern im Nebel. Vielleicht bringst Du mal etwas Licht (Erläuterung, Screenshot, etc.) in die Geschichte.
Gruß