如何声明包含使用record作为参数的事件的记录

Jer*_*dge 3 delphi types declaration cross-reference

我试图弄清楚如何声明记录和许多彼此使用的对象事件.问题是无论我以哪种方式声明它们,我都有一个"未声明的标识符".

因此,使用下面的代码,我可以让它们互相使用吗?事件将在对象中使用,记录将被传递并用于对象的构造函数.

  TMyEvent = procedure(Sender: TObject; var Rec: TMyRecord) of object;

  TMyRecord = record
    OnMyEvent: TMyEvent;
  end;
Run Code Online (Sandbox Code Playgroud)

这可能吗?它需要适用于所有版本的Delphi 7及更高版本.

All*_*uer 14

如果您使用的是更新的Delphi版本,则可以在记录中声明类型.您可以通过以下方式参考活动记录:

type
  TMyRecord = record
  public type
    TMyEvent = procedure (Sender: TObject; var Rec: TMyRecord) of object;
  public
    OnMyEvent: TMyEvent;
  end;
Run Code Online (Sandbox Code Playgroud)