属性OnProcessEvent:TOnProcessEventProc读取FOnProcessEvent写入FOnProcessEvent;

时间:2016-01-20 22:44:07

标签: delphi

我在delphi代码中遇到过以下函数。我是delphi的新手。在Delphi中有很多地方调用这个函数。但是我似乎无法找到这个函数的定义。有人可以解释这意味着什么。

property OnProcessEvent: TOnProcessEventProc read FOnProcessEvent write FOnProcessEvent; 

1 个答案:

答案 0 :(得分:1)

该声明不是功能,它是属性,或者更具体地说是事件。在同一个类中,您将看到名为FOnProcessEvent的数据成员TOnProcessEventProc。如果查看TOnProcessEventProc的声明,您将看到它是特定签名的方法指针的别名,例如:

type
  TOnProcessEventProc = procedure(Sender: TObject; ... other parameters here ...) of object;

这意味着可以将与该签名匹配的任何非静态类方法分配给OnProcessEvent事件。如果事件声明为published,则甚至可以在设计时分配这样的方法,而不是在运行时在代码中分配。

在声明event属性的类的代码中,它所要做的只是调用FOnProcessEvent(),就像它是一个过程一样,例如:

if Assigned(FOnProcessEvent) then
  FOnProcessEvent(Self, ... parameter values here ...);

无论实际分配给FOnProcessEvent的方法是什么,都会被调用。