关于动态创建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;
其实我们可以使用一种更快的方法达到同样的功能, 但使用很少的代码, 那就是用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')); 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;