首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么引用对象中事件,使它象普通变量一样使用

2012-02-22 
如何引用对象中事件,使它象普通变量一样使用?已知有一个过程如下:procedure Test(var q:TNotifyEvent)beg

如何引用对象中事件,使它象普通变量一样使用?
已知有一个过程如下:
procedure Test(var q:TNotifyEvent);
begin
  q:=xxxx;  
end;

var x:TNotifyEvent;
begin
  test(x); //这样是合法的
  test(Button1.Onclick); //但这是非法的.
end;

也许大家问我为何不使用Button1.Onclick:=xxx;
这是因为我想做一个类,它不但可保存TNotifyEvent的变量,也可保存任意对象的TNotifyEvent属性(属性名可以任意).
这样,就可以在特定情况下把这个TNotifyEvent指向特定的事件.所以有些一问,不知哪位高手能指点一下.


[解决办法]
sf
[解决办法]
先将Button1.Onclick的代码封装成一个方法,然后在OnClick和Test分别调用就可以了。
[解决办法]
var x:TNotifyEvent; 
begin 
test(x); //这样是合法的 
test(Button1.Onclick); //但这是非法的. 
end;
=====================================================
var x:TNotifyEvent; 
begin 
test(x); //这样是合法的 
x := Button1.Onclick;
test(x); //这应该合法吧. 
end;
[解决办法]
哦,没看清楚,你说的要给Button1.Onclick赋值啊,Button1.Onclick是属性,没法作为var参数赋值的。
[解决办法]
你在类里声明一个事件属性不就得了,属性的类型为TNotifyEvent
就像Button的OnClick事件一样
[解决办法]
设置成属性,你完全可以直接对你的属性赋值
myClass.myEvent := Button.Onclick;
有何不可?

热点排行