我已经定义了事件类型:
TMyEvent = procedure(object: TMyClass) of object;
并且在同一单元中我还有一个类定义:
TMyClass = class(TObject)
...
private
FOnXXX: TMyEvent;
protected
...
public
...
property OnXXX: TMyEvent read FOnXXX write FOnXXX;
published
{ Published declarations }
end;
如果我尝试编译,我会得到'E2003 Undeclared identifier:'TMyEvent''。
在C ++中我会使用原型。 有没有办法将它们放在一个单元中?
Sry,如果它是重复的,但我真的没有找到任何关于它的信息。
提前致谢, Peacelyk
答案 0 :(得分:4)
您可以在事件声明之前声明该类:
TMyClass = class;
TMyEvent = procedure(object: TMyClass) of object;
然后你应该包括TMyClass
的完整声明,以解决不满意的前方声明。
答案 1 :(得分:0)
尝试在定义之前加上类型,并且它必须位于接口部分而不是实现:
type
TMyEvent = procedure(object: TMyClass) of object;
请查看以下链接,了解ANATOMY OF A DELPHI UNIT