一个自定义事件定义的问题?(100分)

  • 主题发起人 主题发起人 find
  • 开始时间 开始时间
F

find

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
public
procedure fe(sender:TObject)
end;

type//自定义类
op=class
private
rehu4:TNotifyEvent;
wrhu4:TNotifyEvent;
published
property onhu4:TNotifyEvent read rehu4 write wrhu4;//自定义属性;
property onhu5:TNotifyEvent read rehu4 write rehu4;//自定义属性;
end;


procedure Button1Click(Sender: TObject)

var
f:cr;
begin
f:=cr.create;
f.onhu4:=fe;
f.onhu4(self)//出现错误

f.onhu5:=fe;
f.onhu5(self)//没有错误
end;

问题:1)其实onhu4和onhu5的区别只是 onhu5的读、写是相同的,但onhu4读、写是不同的,
不过两个域(rehu4,wrhu4)的定义是相同的,为什么f.onhu5(self)出现错误

2)而且发现如果

f.onhu5:=fe;
f.onhu5(self)
改为
f.rehu4:=fe
f.onhu5(self)
就不发生错误


我想知道原因在那里??????
 
以上有些字眼有所更正

‘自定义属性’应是'自定义事件'
 
f.onhu4:=fe
就是write wrhu4,就是wrhu4:=fe

f.onhu4(self)
就是read rehu4 ,就是执行rehu4(self), rehu4没有赋值,出错
 
同意上述观点,不过我还要自己试试再说。
最近我也在写控件。谢谢你给了个机会给我思考。
 
接受答案了.
 
后退
顶部