博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把普通函数指针,变成对象方法指针
阅读量:4881 次
发布时间:2019-06-11

本文共 812 字,大约阅读时间需要 2 分钟。

delphi里的普通函数指针pointer 为4个字节,但是对象的方法指针是8个字节,由对象指针self(4字节)和函数指针(4字节)组合而成.了解了这句话,将普通的函数指针变成对象的方法指针就不是难事了.这种手段只能用于对象方法只有Sender这一个参数的情况.

下面是简单的例子代码.

1 procedure  Button2Click(Sender: TObject);  //这里是一个普通的函数  2 implementation  3  4 {
$R *.DFM} 5 procedure Button2Click(Sender: TObject); 6 begin 7 ShowMessage('1'); 8 end; 9 10 procedure TForm1.Button1Click(Sender: TObject); 11 var 12 Method: TMethod; 13 begin 14 Method.Code := @Button2Click; //取得Button2Click函数指针 15 Method.Data := nil; //也可以是self 16 Button2.OnClick := TNotifyEvent(Method); 17 end; 18 19 //---------------------------------无敌分割线------------------------------- 20 21 TMethod = record 22 Code, Data: Pointer; 23 end;

  

转载于:https://www.cnblogs.com/solokey/archive/2011/07/21/2113345.html

你可能感兴趣的文章
OPMN
查看>>
LOG收集系统(一):原日志至收集
查看>>
【文摘】经营十二条
查看>>
清除浮动的方法
查看>>
Logstash连接Elasticsearch异常
查看>>
洛谷P4287 [SHOI2011]双倍回文(回文自动机)
查看>>
用户交互程序,格式化输出
查看>>
GNOME的发展与对比
查看>>
SPOJ PT07X Vertex Cover
查看>>
$ python-json模块的基本用法
查看>>
5.6.3.4 trim()方法
查看>>
Cookie、Session和自定义分页
查看>>
SQL演练
查看>>
React Antd中样式的修改
查看>>
Spring 应用外部属性文件 配置 context 错误
查看>>
导入lxml找不到etree,报ImportError:DLL load failed:找不到指定的程序
查看>>
面向对象一
查看>>
大象的崛起!Hadoop七年发展风雨录
查看>>
图片二值化
查看>>
数据库常用函数
查看>>