D
ddev
Unregistered / Unconfirmed
GUEST, unregistred user!
我们知道,在 CreateWindow(Ex) 的过程中,要求 WndProc 是一个全局的函数指针,而 VCL 却能够把这个函数封装到类的成员函数表中,这实在是一个绝妙的手法,因为这样就可以把 API 中的回调函数也类似地封入类中(不知道行不行?我想应该可以吧,只是我不知道...)。但对于VCL 的源码,却怎么也看不明白,请教各位高手,这应该如何实现呢?能不能说得透彻些。谢谢。<br><br>示例:(例子是错误的,只是为说明实现要求)<br><br>type<br> TCallBackFunc = function(N: Longint): Longint;<br><br>function DoCallBack(Func: TCallBackFunc): Longint;<br>var<br> x: Longint;<br>begin<br> Result := Func(x);<br>end;<br><br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> Edit1.Text := IntToStr(DoCallBack(GetData));<br>end;<br><br>function TForm1.GetData(x: Integer): Longint;<br>begin<br> if x > 0 then<br> Result := 100 else<br> Result := 0;<br>end;<br>