指向类方法的类中的过程数组

时间:2010-09-25 18:42:49

标签: delphi class pointers methods procedure

我有一个类(TExample),我希望有一个指向TExample方法的指针数组。例如,我想要TExample.ThinkOne并执行aPointers [1]:= @ TExample.ThinkOne或类似的东西。我该怎么做呢?感谢。

1 个答案:

答案 0 :(得分:2)

您可以这样做:

type
  TProcType = procedure(const AParm: Integer) of object; // Method type
  TProcArray = array of TProcType; // Dynamic array 
  TExample = class
  public
    procedure A(const AParm: Integer); // Method signature matches TProcType
    procedure B(const AParm: Integer);
  end;

var
  pa : TProcArray;

procedure Init(const AExample: TExample);
begin
  SetLength(pa, 2);
  pa[0] := AExample.A;
  pa[1] := AExample.B;
end;