我想将一个类的函数作为回调函数使用,在delphi中是否可行?请举个例子。

解决方案 »

  1.   

    type 
     TMemFunc=function(a,b:integer):integer of object;
    .........................................................
    然后你就可以将TMemFunc当作普通的类型来用乐,成员函数类型
      

  2.   

    我的意思是我要创建一个类,在使用过程中,一个系统函数要回调一个函数,我能否将类的函数作为回调函数调用的函数.type myclass =class
       public 
          myFun(x.y :integer):integer;stdcall;  //回调函数调用的函数
    end
       
      
      

  3.   

    我使用的回调函数acmDriverEnum要求调用的函数是这样 的:
    ACMDRIVERENUMCB = function(hadid: HACMDRIVERID; dwInstance: DWORD; fdwSupport: DWORD): bool; stdcall;
    现在要写一个类,要求把hadid保存到该类的一个stringList值中,我应该怎样做。
    注:
      HACMDRIVERID实际为integer型。
      

  4.   

    成员函数基本上不允许,类函数可以。
    每一个成员函数编译器会自动在参数表最后加Integer 参数(当然是Self喽),类函数则不会。
    这也就是为啥成员函数有Self指针,类函数没有,(与C++极为类似)。
    Win32API要求的回调函数的原形是固定的。成员函数因参数的问题如果被传递到回调函数会引起堆盏问题,系统会崩溃的。
    你可以看看<深入浅出MFC 2>,虽然工具不同,道理是相同的。
      

  5.   

    To zhoutler:
    类函数不同与C++的静态函数.类函数也会传入一个Self指针,不过这个Self指针指向当前函数的宿主类的参考类.要不然怎么叫类函数而不叫静态函数呢