动态生成popupmenu上的item后,如何响应点击事件?(50分)

  • 主题发起人 主题发起人 1.2
  • 开始时间 开始时间
双击之进入popupmenu的编辑状态, 单击后在事件中写代码
 
动态生成后item后,不能动给它指定事件吗?
item是一个对象啊。应该是可以的。
 
先定义处理过程
procedure Form1.ClickTest(sender: TObject);
begin
ShowMessage('test');
end;


在某处创建menuitem
var
tmp: TMenuItem;

begin
tmp:= tmenuitem.create(XXXX);
....
tmp.caption:= XXXX;
tmp.Onclick:= ClickTest;
....
end;
 
To: htw :(

同意 alter 的方法

只要体会了事件句柄和多态性就不难了!
 
agree to alter

 
生成的代码如下:
PopUpitem:=TMenuItem.Create(Self);
PopupItem.Caption:='XXX';
PopUpItem.GroupIndex:=0;
PopUpItem.OnClick:=OcbPopupHandler;
Mnupop.Items.Add(PopupItem);

调用的例子如下:
procedure TFrmMain.OcbPopupHandler(Sender: TObject);
begin
if (sender as TMenuitem).GroupIndex=0 then
begin
....
end;
end;

 
后退
顶部