首页  编辑  

快速动态创建MenuItem

Tags: /超级猛料/VCL/Menu.菜单/   Date Created:

快速动态创建MenuItem

在设计程序时,有时我们需要动态地创建菜单, 通常我们使用以下的语句

PopupMenu1 := TPopupMenu.Create(Self);

Item := TMenuItem.Create(PopupMenu1);

Item.Caption := 'First Menu';

Item.OnClick := MenuItem1Click;

PopupMenu1.Items.Add(Item);

Item := TMenuItem.Create(PopupMenu1);

Item.Caption := 'Second Menu';

Item.OnClick := MenuItem2Click;

PopupMenu1.Items.Add(Item);

Item := TMenuItem.Create(PopupMenu1);

Item.Caption := 'Third Menu';

Item.OnClick := MenuItem3Click;

PopupMenu1.Items.Add(Item);

Item := TMenuItem.Create(PopupMenu1);

Item.Caption := '-';

PopupMenu1.Items.Add(Item);

Item := TMenuItem.Create(PopupMenu1);

Item.Caption := 'Fourth Menu';

Item.OnClick := MenuItem4Click;

PopupMenu1.Items.Add(Item);

其实我们可以使用一种更快的方法达到同样的功能, 但使用很少的代码, 那就是用NewLine和NewItem, 看看下面的例子, 是不是很简单?

PopupMenu1 := TPopupMenu.Create(Self);

with PopUpMenu1.Items do

begin

Add(NewItem('First Menu',0,False,True,MenuItem1Click,0,'MenuItem1'));

Add(NewItem('Second Menu',0,False,True,MenuItem2Click,0,'MenuItem2'));

Add(NewItem('Third Menu',0,False,True,MenuItem3Click,0,'MenuItem3'));

Add(NewLine); // 增加一个分割棒

Add(NewItem('Fourth Menu',0,False,True,MenuItem4Click,0,'MenuItem4'));