如何声明包含使用记录作为参数的事件的记录
我试图弄清楚如何声明一条记录和一些相互使用的对象事件。问题是无论我以哪种方式声明它们,我都有一个“未声明的标识符”。
那么通过下面的代码,我可以让它们互相使用吗?事件将在对象中使用,记录将被传递并使用到对象的构造函数中。
TMyEvent = procedure(Sender: TObject; var Rec: TMyRecord) of object;
TMyRecord = record
OnMyEvent: TMyEvent;
end;
这可能吗?它需要在 Delphi 7 及更高版本的所有版本中工作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用的是较新的 Delphi 版本,则可以在记录中声明类型。您可以通过以下方式引用活动记录:
If you're using a more recent Delphi version, you can declare types within records. Here is how you can reference the record from your event:
不幸的是,前向声明只允许用于类,而不允许用于记录,所以我知道的唯一方法是使用指针:
Unfortunately forward declarations are only allowed for classes but not records, so the only way I know of is to use pointers: