Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TMS TAdvMainMenu (https://www.delphipraxis.net/179640-tms-tadvmainmenu.html)

Walter Landwehr 21. Mär 2014 13:56

TMS TAdvMainMenu
 
Hallo,

ich brauche mal Hilfe zu TMS TadvMainMenu. Und zwar möchte ich alle Hautmenüpunkte in ein TTreeView laden. Hauptpunkte und darunter den Zweig der Untermenüs.

In deiner TdxBar habe ich das so gelöst.

procedure FillTheTreeView(dxbBarItemIndex: Integer; Predecessor: TTreeNode; Item: TdxBarItemLink);

wie aber nun mit dem TMS Menü?

Kann mir jemand helfen?

Vielen Dank im voraus.

arnof 21. Mär 2014 14:42

AW: TMS TAdvMainMenu
 
Delphi-Quellcode:
   if menu.Items.count>0 then begin
    MenuI:=menu.Items[0]; // Hauptmenu
    TB_Menue.Caption:=MenuI.Caption;
    //
    if menu.Items[0].Count>0 then begin
     // Menüpunkte
     for i:=0 to menu.Items[0].Count-1 do begin
      Menu.Items[i]
....

     end;
    end;
   end;
  end;
  //

Walter Landwehr 25. Mär 2014 07:58

AW: TMS TAdvMainMenu
 
Hm, so richtig weitergekommen bin ich noch nicht.

Hier mal mein Ansatz

Delphi-Quellcode:
procedure TBenutzerverwaltungFrm.FormCreate(Sender: TObject);
     var I, J: Integer;
       Node: TTreeNode;
begin

  Node := AdvCheckTreeView1.Items.Add(nil, 'AlleRechte'); // Oberster Eintrag
  Node.ImageIndex := 0;
    if frmMain.Menue.Items.count > 0 then    
    begin
      for I := 0 to frmMain.Menue.Items.Count - 1 do
      begin
        If I = 0 then
          Node := AdvCheckTreeView1.Items.AddChild(Node, copy(frmMain.Menue.Items[I].Caption,2,35));
          if frmMain.Menue.Items[I].count > 0 then                   // bis hier OK
           for J := 0 to frmMain.Menue.Items[I].Count - 1 do
           begin
             If J = 0 then
               Node := AdvCheckTreeView1.Items.AddChild(Node, frmMain.Menue.Items[J].Caption) <-- Hier sollte das erste Untermenü vom ersten Hauptmenü gelesen werden list aber das erste Hauptmenü
             else
               Node := AdvCheckTreeView1.Items.Add(Node, frmMain.Menue.Items[J].Caption)
           end
          else
            Node := AdvCheckTreeView1.Items.Add(Node, copy(frmMain.Menue.Items[I].Caption,2,35))
      end;
end;
Ich schaffe es einfach nicht die Untermenüs auszulesen.

Kann mir jemand helfen.

Danke im voraus.

bcvs 25. Mär 2014 09:29

AW: TMS TAdvMainMenu
 
Klar, frmMain.Menue.Items sind ja die Hauptmenü-Items, Davon hat jeder wieder seine Items.

Probiers mal mit

Delphi-Quellcode:
frmMain.Menue.Items[I].Items[J].Caption

Walter Landwehr 25. Mär 2014 13:29

AW: TMS TAdvMainMenu
 
so nun hab ich es gelöst.

hier mal mein Code:
Delphi-Quellcode:
procedure TBenutzerverwaltungFrm.FormCreate(Sender: TObject);
     var I, J : Integer;
          tnNode: TTreeNode;
           Node : TTreeNode;
begin
  Node := AdvCheckTreeView1.Items.Add(nil, 'AlleRechte');
  tnNode := Node;
  if frmMain.Menue.Items.count > 0 then
  begin
    for I := 0 to frmMain.Menue.Items.Count - 1 do
    begin
      If I = 0 then
        Node := AdvCheckTreeView1.Items.AddChild(Node, copy(frmMain.Menue.Items[I].Caption,2,35))
      else
        Node := AdvCheckTreeView1.Items.AddChild(tnNode, copy(frmMain.Menue.Items[I].Caption,2,35));
      if frmMain.Menue.Items[I].count > 0 then
         for J := 0 to frmMain.Menue.Items[I].Count - 1 do
        begin
           If J = 0 then
             Node := AdvCheckTreeView1.Items.AddChild(Node, frmMain.Menue.Items[I].Items[J].Caption)
          else
            Node := AdvCheckTreeView1.Items.Add(Node, frmMain.Menue.Items[I].Items[J].Caption)
        end;
    end;
  end;
end;
Danke an alle.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 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