首页 > Windows开发 > 详细

Delphi函数指针的两种定义(对象方法存在一个隐藏参数self,所以不能相互赋值)

时间:2015-12-30 01:45:40      阅读:270      评论:0      收藏:0      [点我收藏+]

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为类方法)的原因!

http://blog.csdn.net/procedure1984/article/details/3897155

Delphi函数指针的两种定义(对象方法存在一个隐藏参数self,所以不能相互赋值)

原文:http://www.cnblogs.com/findumars/p/5087508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!