对于DELPHI中特TYPE定义的一组过程的不解! ( 积分: 50 )

  • 主题发起人 Luck3919
  • 开始时间
L

Luck3919

Unregistered / Unconfirmed
GUEST, unregistred user!
近日下载一个组件,看到有这样的代码,不知其意和其作用,请有经验的DFW帮我指点:
unit imagebutton;
interface
uses
SysUtils, Classes, Controls, SysUtils, Messages, Windows, Consts, Forms,
Graphics, Stdctrls;
type
TactiveChange = procedure(sender:Tobject;active:boolean) of object;
type
imagebutton = class(TGraphicControl)
private
Fabout:String;
Factive:boolean;
Fpicture:Tpicture;
........
针对
type
TactiveChange = procedure(sender:Tobject;active:boolean) of object;
我想可能是定义的一个过程,但是它在程序中的作用是什么?定义它的依据又是什么呢?
为什么要这样子定义呢?
 
近日下载一个组件,看到有这样的代码,不知其意和其作用,请有经验的DFW帮我指点:
unit imagebutton;
interface
uses
SysUtils, Classes, Controls, SysUtils, Messages, Windows, Consts, Forms,
Graphics, Stdctrls;
type
TactiveChange = procedure(sender:Tobject;active:boolean) of object;
type
imagebutton = class(TGraphicControl)
private
Fabout:String;
Factive:boolean;
Fpicture:Tpicture;
........
针对
type
TactiveChange = procedure(sender:Tobject;active:boolean) of object;
我想可能是定义的一个过程,但是它在程序中的作用是什么?定义它的依据又是什么呢?
为什么要这样子定义呢?
 
困为事件则是特殊的事件,因此事件也可以由property关键字声明,只是
其类型必须是一个函数指针,其所依附的数据成员也必须是函数指针.
在组件中,要执行用户为事件所编写的代码,就调用:
if assigned( XXX ) then
XXX(self);
 
这段代码的作用就是定义一个事件类型,因为事件必须是一个成员函数的指针,所以最后加上了一个of Object。
定义了事件类型以后就可以在组件中声明这样的事件,当然可以声明很多同样事件类型的不同事件。
 
你去学习一下:
1。指向过程的指针
2。VCL控件的基本源码
我学这些就是研究DelphiX组件起家的
 
对于指向过程的指针,我可以理解,
但是对于VCL的源码,我经常看到这样的代码,就是不知其意!
 
这是对象指针
 
接受答案了.
 
顶部