我的菜单已在控件TMainMenu中设好,想遍历每一个子菜单项,怎么实现?我用语句
   for i:=0 to (MainMenu.Item.count-1) do ,只能遍历第一级主菜单,不能遍历子菜单。

解决方案 »

  1.   

    var i :integer; 
    begin
    for i:=0 to componentcount-1 do
    begin
      if components[i] is TMenuItem then
      //你的code
    end;
    end;
      

  2.   

    procedure bianlimenu
    var i :integer; 
    begin
    for i:=0 to menu.Items.Count -1 do
    begin
      //处理这个menuitem
      if items[i].count>0 then bianlimenu;
    end;
    end;
      

  3.   

    应该加上参数
    procedure bianlimenu(menu:tmenuitem)
    var i :integer; 
    begin
    for i:=0 to menu.Items.Count -1 do
    begin
      //处理这个menuitem
      if items[i].count>0 then bianlimenu;
    end;
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;procedure ListAllMenuItems(AMenuItem: TMenuItem);
    var
      I: Integer;
    begin
      Memo1.Lines.Add(AMenuItem.Caption);
      for I := 0 to AMenuItem.Count - 1 do
      begin
        if AMenuItem.Items[I].Count > 0 then
          ListAllMenuItems(AMenuItem.Items[I])
        else
          Memo1.Lines.Add(AMenuItem.Items[I].Caption);
      end;
    end;begin
      Memo1.Lines.Clear;
      for I := 0 to MainMenu1.Items.Count - 1 do
        ListAllMenuItems(MainMenu1.Items.Items[I]);
    end;