主菜单有多级,请问用递归如何实现?

解决方案 »

  1.   

    procedure SearchMenuItem(AMenuItem: TMenuItem);
    var
      I: integer;
    begin
      with AMenuItem do
      begin
        for i := 0 to count-1 do
        begin
          if Items[i].count>0 then
            SearchMenu(Items[i]
          else begin
            DoSth;
          end;
        end
      end;
    end;procedure SearchMenu(AMenu: TMenu);
    var
      I: integer;
    begin
      with AMenu do
      begin
        for i := 0 to count-1 do
          SearchMenuItem(Items[i]);
      end;
    end;
      

  2.   

    赫赫,这个代码我没怎么测,大概是这样。一个Menu对象下挂好多MenuItem,每个MenuItem下又可以挂好多MenuItem。