2016-01-20 63 views
-3

我在delphi代码中遇到了下面的函数。我对delphi相当陌生。在Delphi中有不少地方会调用这个函数。但是我似乎无法找到这个函数的定义。有人可以解释这是什么意思。属性OnProcessEvent:TOnProcessEventProc读取FOnProcessEvent写入FOnProcessEvent;

property OnProcessEvent: TOnProcessEventProc read FOnProcessEvent write FOnProcessEvent; 
+0

阅读此,http://stackoverflow.com/questions/21403628/how-can-i-search-for-delphi-documentation,然后这个http://docwiki.embarcadero.com/RADStudio/en/Properties –

+0

而且这也是http://docwiki.embarcadero.com/RADStudio/en/Events –

+0

你没有给出你发布的代码的上下文。它可能是也可能不是VCL/RTL的一部分;可以想象任何人都可以创建一个具有该属性和类型的类(我可以在大约6行代码中这样做)。如果你需要关于代码的信息,你需要包含足够的上下文来回答。我们无法看到您的屏幕或阅读您的想法,告诉您在哪里找到代码或属性属于哪个类别,因此您需要在您的问题中包含该信息。 –

回答

1

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

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

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

在该声明的事件属性的类的代码,所有它做的是电话FOnProcessEvent()就好像它是一个过程,例如:

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

无论是否任何方法实际上是分配给FOnProcessEvent, ,将被调用。