在仅运行时程序包中,我定义了一个TFrame后代,该后代发布了OnLoaded事件:
type
TMyMethod = procedure() of object;
TMyFrame = class(TFrame)
protected
FOnLoaded : TMyMethod;
procedure Loaded(); override;
published
property OnLoaded : TMyMethod read FOnLoaded write FOnLoaded;
end;
implementation
{$R *.dfm}
procedure TMyFrame.Loaded();
begin
inherited;
if(Assigned(FOnLoaded))
then FOnLoaded();
end;
在仅限设计时的程序包中,我已经按如下方式注册了TMyFrame组件:
unit uMyRegistrations;
interface
uses
Classes, uMyFrame;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyTestComponents', [
TMyFrame
]);
end;
我已经安装了设计时软件包,我可以在工具选项板中找到TMyFrame,并且它的OnLoaded事件在对象检查器中显示。
我已将TMyFrame拖到窗体中,然后通过从对象检查器中双击来分配OnLoaded事件。分配事件后,我注意到每次尝试在Delphi中打开表单文件时都会出现访问冲突错误消息(它使我可以打开“ .pas”文件,但无法切换到可视设计器视图)。 >
我是否正确发布了OnLoaded事件?如果是这样,还有什么问题吗?
其他信息:
在仅运行时程序包中,我定义了一个TFrame后代,该后代发布OnLoaded事件:类型TMyMethod = procedure()of object; TMyFrame = class(TFrame)受保护的FOnLoaded:...