(delphi11最新学习资料) Object Pascal 学习笔记---第12章第1节 ( 类静态方法与Windows API回调)

12.1.4 类静态方法与Windows API回调

​ 静态类方法没有隐藏的Self参数意味着静态类方法可以作为回调函数传递给操作系统(例如,在Windows上)。实际上,您可以声明一个具有stdcall调用约定的静态类方法,并将其用作直接的Windows API回调,就像我在StaticCallBack示例中的TimerCallBack方法中所做的那样:

type  
  TFormCallBack = class(TForm)  
  ListBox1: TListBox;  
  procedure FormCreate(Sender: TObject);  
  private  
  class var  
  NTimerCount: Integer;  
  public  
  procedure AddToList (const AMessage: string);  
  class procedure TimerCallBack(hwnd: THandle;  
    uMsg, idEvent, dwTime: Cardinal); static; stdcall;  
  end;

​ 类数据被用作回调计数器。OnCreate处理器通过将地址传递给静态类过程来调用SetTimer API:

procedure TFormCallBack.FormCreate(Sender: TObject);  
var  
  Callback: TFNTimerProc;  
begin  
  NTimerCount := 0;  
  Callback := TFNTimerProc(@TFormCallBack.TimerCallBack);  
  SetTimer(Handle, TIMERID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值