通常好象都是这样做的:
function EnumWindowsProc(hWnd: HWnd; lParam: Integer): Boolean; stdcall;
begin
...
end;
...
EnumWindows(@EnumWindowsProc, 0);现在如果上面那个回调函数是一个对象方法,程序运行就会有问题。
但是对象方法能不能做回调函数呢?
如果能,又该怎么做呢?
function EnumWindowsProc(hWnd: HWnd; lParam: Integer): Boolean; stdcall;
begin
...
end;
...
EnumWindows(@EnumWindowsProc, 0);现在如果上面那个回调函数是一个对象方法,程序运行就会有问题。
但是对象方法能不能做回调函数呢?
如果能,又该怎么做呢?
解决方案 »
- odac oraquery 读取nclob字段 怎么是乱码 ?
- 邀请各路高手调试思微连锁超市商业源码(开源)
- 有关于fastreport的问题
- {诚心请教}[Ehlib之DBGridEh] 的STfilter的问题。选"Empty" 或者 "Not Empty"时出错。
- 在线等,解决就结贴!关于系统托盘的问题
- 在delphi中怎么美化工具栏?
- 问一个问题
- forgot2000的纯送分帖:哪位朋友五月份有旅游计划的请进来看看!一定给分。
- 托盘
- SOS,....., 有关PageControl的问题?
- 为何TQuery控件取到的字符串值长度只有254个呢?
- 如何在DLL中创建窗口给其它开发工具使用?
例如:
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
function EnumWindowsProc(hWnd: HWnd; lParam: Integer): Boolean;
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function TForm1.EnumWindowsProc(hWnd: HWnd; lParam: Integer): Boolean;
begin
ShowMessage('hello');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(Self.MethodAddress('EnumWindowsProc'), 0);
end;
function TForm1.EnumWindowsProc(hWnd: HWnd; lParam: Integer): Boolean;
里使用TForm1上的控件时,一定要加上全名:
如ListBox1一定要写成Form1.ListBox1