微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Delphi 中的 procedure of object

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; 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐