我在delphi代码中遇到过以下函数。我是delphi的新手。在Delphi中有很多地方调用这个函数。但是我似乎无法找到这个函数的定义。有人可以解释这意味着什么。
property OnProcessEvent: TOnProcessEventProc read FOnProcessEvent write FOnProcessEvent;
答案 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
的方法是什么,都会被调用。