我想将一个类的函数作为回调函数使用,在delphi中是否可行?请举个例子。
解决方案 »
- delphi程序编译之后总是在状态栏,无法展开,什么原因?
- 用友财务软件的数据库结构是怎样的?我需要和它做数据导入!
- 我怎樣點擊button後,DBGrid最末一行的後面再加一新行,再點擊再加新行,再點再加?
- 语法小问题?
- 新开贴加足200分:高分求一精典(排列组合)函数,并将结果存成一文本文件(一行一结果)
- 有谁会分析ip数据包?
- 我爆笑1
- vb那里没人回答我这个菜鸟问题
- sql多列显示能实现吗?
- 在DELPHI中如何用ADO控件打开带密码的ACCESS数据库?
- 进来谈谈用存储过程查询的经验??
- 求救:Delphi中使用AdoConnection组件时出现"Invalid Enum value",为什么??
TMemFunc=function(a,b:integer):integer of object;
.........................................................
然后你就可以将TMemFunc当作普通的类型来用乐,成员函数类型
public
myFun(x.y :integer):integer;stdcall; //回调函数调用的函数
end
ACMDRIVERENUMCB = function(hadid: HACMDRIVERID; dwInstance: DWORD; fdwSupport: DWORD): bool; stdcall;
现在要写一个类,要求把hadid保存到该类的一个stringList值中,我应该怎样做。
注:
HACMDRIVERID实际为integer型。
每一个成员函数编译器会自动在参数表最后加Integer 参数(当然是Self喽),类函数则不会。
这也就是为啥成员函数有Self指针,类函数没有,(与C++极为类似)。
Win32API要求的回调函数的原形是固定的。成员函数因参数的问题如果被传递到回调函数会引起堆盏问题,系统会崩溃的。
你可以看看<深入浅出MFC 2>,虽然工具不同,道理是相同的。
类函数不同与C++的静态函数.类函数也会传入一个Self指针,不过这个Self指针指向当前函数的宿主类的参考类.要不然怎么叫类函数而不叫静态函数呢