zoukankan      html  css  js  c++  java
  • Delphi 中三种回调函数形式解析

    --[教程]Delphi 中三种回调函数形式解析 – QDAC数据访问组件网站  http://blog.qdac.cc/?p=4595

    Delphi 支持三种形式的回调函数:

    • 全局函数
      这种方式几乎是所有的语言都支持的,类的静态函数也可以归为此类,它保存的只是一个函数的代码起始地址指针( Pointer )。在 Delphi 中声明一般为:
    • 类的成员函数
      类的成员函数作为回调函数,与全局函数相比,需要关联具体的类的实例,所以它是由两部分组成,一个是对象的实例地址,一个是代码地址,两个指针,构成一个记录(结构体),参考 Delphi 中 TMethod 的声明:

      在 Delphi 中的声明一般为:

      在实践中,你可以用 absolute 关键字来取出类的成员函数的 Code 和 Data 的值,Data 实际上就是对象的实例地址。Delphi 中的事件一般来说都是此类回调,要求事件响应函数是类的成员函数。
    • 匿名函数
      匿名函数 Delphi 实例上是通过接口来实现的,当你声明一个匿名函数类型时,实际上是声明了一个接口。比如我们看 Delphi 下面的匿名函数声明:

      实际上是声明了一个接口:

      然后当你实现一个匿名函数时,实际上就是实现了这个接口,那个匿名函数遵守接口的一切规则。Delphi 为你隐藏了内部的一切细节~~~

  • 相关阅读:
    第05组 Alpha冲刺 (6/6)
    第05组 Alpha冲刺 (5/6)
    第五次作业
    第05组 Alpha冲刺 (4/6)
    第05组 Alpha冲刺 (3/6)
    第05组 Alpha冲刺 (2/6)
    第05组 Alpha冲刺 (1/6)
    第四次作业
    差分约束
    置换群的性质与burnside引理
  • 原文地址:https://www.cnblogs.com/dmqhjp/p/14776209.html
Copyright © 2011-2022 走看看