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

发布于 2024-09-25 08:56:22 字数 136 浏览 2 评论 0原文

我有一个类(TExample),我想要一个指向 TExample 方法的指针数组。例如,我想要 TExample.ThinkOne 并执行 aPointers[1] := @TExample.ThinkOne 或类似的操作。我怎样才能正确地做到这一点?谢谢。

I have a class (TExample) and I want to have an array of pointers that point to TExample methods. For example, I'd like to have TExample.ThinkOne and do aPointers[1] := @TExample.ThinkOne or something similar. How can I properly do this? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪漫之都 2024-10-02 08:56:23

你可以这样做:

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;      

You can do something like this:

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;      
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文