TNofiFyEvent 是什么类型? 对创建组件事件有什么用?

解决方案 »

  1.   

    TNofiFyEvent 是什么类型?
    TNotifyEvent 通知事件类型。 是最普遍的一类函数指针类型,delphi中也把它称作事件句柄。
    TNotifyEvent 类型指向任何一个函数签名(参数与返回值)与之匹配的函数的地址。TNotifyEvent = procedure(Sender: TObject) of object;
    // 它指向的函数的签名为: 
    // 一个对象的成员函数
    // 无返回值,即“procedure 过程”
    // 需要一个TObject类型的变量,通常为该对象自身的引用,即Self
     对创建组件事件有什么用?
    用button做例子。FOnClick: TNotifyEvent; // 私有成员
    property OnClick: TNotifyEvent read FOnClick write FOnClick;// 公布的属性,属性即为FOnClick// 例如你在窗体放置一个button1,TButton 类中定义了私有成员变量 
    // 双击该button,就会自动生成一个匹配 OnClick (TNotifyEvent类型)签名的函数
    // 这时,OnClick 指向这个button1Click 函数的地址
    procedure TForm1.button1Click(Sender: TObject);
    begin
      // 本函数是一个对象的成员函数,带一个TObject类型的参数,无返回值,完全匹配TNotifyEvent
    end;// 回到TButton类的定义中,TButton内就可以直接 FOnClick(self) 调用,
    // 就好像调用了TForm1.button1Click 一样// 这就是一个事件的经过