zoukankan      html  css  js  c++  java
  • 把普通函数指针,变成对象方法指针

    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;

      

  • 相关阅读:
    read
    df,du,mount
    cat,tac,more
    Makefile内嵌函数
    PHP常量详解:define和const的区别
    微信小程序之this.setData
    二维码支付原理分析及安全性的探究
    php 原生文件下载
    php原生实现图片上传和查看
    php文件的处理和操作
  • 原文地址:https://www.cnblogs.com/solokey/p/2113345.html
Copyright © 2011-2022 走看看