有关动态建popupmenu的click事件? ( 积分: 50 )

  • 主题发起人 主题发起人 aynes
  • 开始时间 开始时间
A

aynes

Unregistered / Unconfirmed
GUEST, unregistred user!
var
a: TPopupMenu;
b: TMenuItem;
begin
a:=TPopupMenu.Create(Application);
b:=TMenuItem.Create(a);
b.Caption:='abc';
a.Items.Add(b);
PopupMenu:=a;
b.OnClick :=mypopupclick(b.Caption);
end;


执行到"b.OnClick :=mypopupclick(b.Caption);"出错:Error] Unit1.pas(78): Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'
 
procedure MenuClickEvent(Sender: TObject);
这才是menu的OnClick事件的正确定义
mypopupclick(b.Caption);很明显不对。
要修改其中的参数类型。
 
对mypopupclick事件,我已经有过定义procedure MyPopupClick(str:string);
 
其中的参数类型应该是:
(Sender: TObject);
而不应该是:
(str:string);
 
恩,定义成(Sender:TObject)后就成了,
但我想加一个自定义的参数STR
这应该如何加
 
不能添加参数。
只要将Str作为变量在你的处理方法内部去使用,而不能作为OnClick参数去处理。
这个参数是VCL写死的。
 
麻烦阿,只能将str作为全局变量来调了,谢谢你阿
 
后退
顶部