如何将PopupMenu1做为PopupMenu2的一个子菜单插入?(50)

  • 主题发起人 主题发起人 星幻子
  • 开始时间 开始时间

星幻子

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,非常感谢!!!
 
PopupMenu2.Items.Add(PopupMenu1.Items);
 
假设other1为PopupMenu2的一个已经存在的子菜单:procedure TForm1.Button1Click(Sender: TObject);var i:Integer; t:TMenuItem;begin for I:=PopupMenu1.Items.Count-1 downto 0 do begin t:= PopupMenu1.Items; PopupMenu1.Items.Remove(t); other1.Add( t ); end;end;
 
1楼的不行,直接加的话程序退出会报错2楼的不太明白..试了下也不太行更多说明PopupMenu2里有6项,我需要在PopupMenu2里添加一项(第7项),然后把PopupMenu1里所有内容做为第7项的子菜单添加进去如何实现?
 
继续顶啊,请各位帮帮忙!!!!!!!!
 
我的other1为PopupMenu2的一个已经存在的子菜单,是将PopupMenu1中的菜单添加到other1下面,测试看效果是通过的啊,你再试试看。
 
//因为PopupMenu1中可能存在多级菜单,所以要完整复制过去,要用递归函来复制//以下代码机上运行通过了//递归函数procedure TForm1.CopyMenuItem(MenuItem, SubMenuItem: TMenuItem);var i: integer; item: TMenuItem;begin if Assigned(MenuItem) and Assigned(SubMenuItem) then begin item:= TMenuItem.Create(MenuItem); item.Caption:= SubMenuItem.Caption; item.OnClick:= SubMenuItem.OnClick; //事件也一起复制 MenuItem.Add(item); for i:= 0 to SubMenuItem.Count-1 do begin CopyMenuItem(item, SubMenuItem.Items); end; end;end;//PopupMenu2里添加一项第7项,然后把PopupMenu1里所有内容做为第7项的子菜单添加进去procedure TForm1.Button1Click(Sender: TObject);var i: integer; Item: TMenuItem;begin Item:= TMenuItem.Create(PopupMenu2); Item.Caption:= 'PopupMenu1复制过来的'; PopupMenu2.Items.add(Item); for i:= 0 to PopupMenu1.Items.Count - 1 do CopyMenuItem(Item, PopupMenu1.Items);end;
 
多人接受答案了。
 
后退
顶部