Delphi 中的 procedure of object

来源:互联网 发布:mac如何打开mpp文件 编辑:程序博客网 时间:2024/05/18 17:39
delphi中经常见到以下两种定义 Type TMouseProc = procedure (X,Y:integer); TMouseEvent = procedure (X,Y:integer) of Object; 两者样子差不多但实际意义却不一样, TMouseProc只是单一的函数指针类型; TMouseEvent是对象的函数指针,也就是对象/类的函数/方法 区别在于类方法存在一个隐藏参数self,也就是说两者形参不一样,所以不能相互转换。 这也就是为什么delphi中可以这样赋值 button1.onClick:=button2.onClick; 却不能这样赋值 button1.onclick=buttonclick; (buttonclick为本地函数,button2.onclick为类方法)的原因! 方法类型定义:TMethod = procedure of object;