如何定义自定义事件? ( 积分: 50 )

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

fengxiaoxiao

Unregistered / Unconfirmed
GUEST, unregistred user!
我想定义一个自定义事件,以检查输入数据是否规范。这是我的定义:
type
TS_DBFrm = class(TForm)
private
FCheckRule:TNotifyEvent;
public
published
property OnCheckRule:TNotifyEvent read FCheckRule write FCheckRule;
end;
可是在属性观察器中并没有出现相应的事件。应该如何定义此事件呢?
 
我想定义一个自定义事件,以检查输入数据是否规范。这是我的定义:
type
TS_DBFrm = class(TForm)
private
FCheckRule:TNotifyEvent;
public
published
property OnCheckRule:TNotifyEvent read FCheckRule write FCheckRule;
end;
可是在属性观察器中并没有出现相应的事件。应该如何定义此事件呢?
 
Delphi的IDE的窗体设计器处理的默认窗体基类是TForm,所以在TForm的基础上不管你怎么加都没有用的
 
把这个form做为基类,其他form继承它,自然就有这个属性了
观察器里有没有都没有关系啊,你自己在代码里写啊
 
同意楼上,做成类来继承吧
为什么一定要在属性观察里看到??
 
如何在代码中写?我只知道双击事件,然后再写相应的代码。所以,才有此问。
 
1. 首先声明事件并撰写调用事件的方法
type
TS_DBFrm = class(TForm)
private
FCheckRule:TNotifyEvent;
protected
procedure DoCheckRule(Sender: TObject); virtual;
// 实现代码为 if Assigned(FCheckRule) then FCheckRule(Sender);
published
property OnCheckRule:TNotifyEvent read FCheckRule write FCheckRule;
end;
2. 在子类窗体只要设置 OnCheckRule 属性即可
procedure TS_DBChildFrm.SomeProc(Sender: TObject);
begin
// 事件代码
end;

// 关联事件处理函数
Self.OnCheckRule := Self.SomeProc;
 
多人接受答案了。
 
后退
顶部