PopupMenu介绍

关于动态创建PopupMenu的问题

http://topic.csdn.net/t/20040825/09/3306672.html

动态创建菜单
    var  
mmiTemp:TMenuItem;
begin
                mmiTemp:=TMenuItem.Create();
                mmiTemp.Caption:=   '标题 ';//
                mmiTemp.OnClick:=   actLoadExecute;//设定action
                PopupMenu2.Add(mmiTemp);//加入到上层的菜单
end;

其实我们可以使用一种更快的方法达到同样的功能, 但使用很少的代码, 那就是用NewLineNewItem, 看看下面的例子, 是不是很简单?
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'));
end;

procedure   TForm1.Image1MouseDown(Sender:   TObject;   Button:   TMouseButton;
    Shift:   TShiftState;   X,   Y:   Integer);
begin
    if   button=mbRight   then
        PopupMenu1.Popup(mouse.CursorPos.X,mouse.CursorPos.Y);

end;

原文地址:https://www.cnblogs.com/wanqian/p/3143296.html