TFrame is a container for components; it can be nested within forms or other frames.
TFrame是组件的容器; 它可以嵌套在表单或其他框架中。
A frame, like a form, is a container for other components. Frames can be nested within forms or other frames, and they can be saved on the Component palette for easy reuse.
框架像表单一样,是其他组件的容器。 框架可以嵌套在表单或其他框架中,并且可以保存在“组件”面板中以方便重用。
缺少OnCreate ( Missing OnCreate )
Once you start using frames, you'll note there's no OnCreate event you can use to initialize your frames.
一旦开始使用框架,您会注意到没有可用于初始化框架的OnCreate事件。
In short, the reason that a frame does not have a OnCreate event is there is no good time to fire the event.
简而言之,框架没有OnCreate事件的原因是没有时间触发该事件。
However, by overriding the Create method you can mimic the OnCreate event. After all, the OnCreate for Forms gets fired at the end of the Create constructor — so overriding Create for Frames is as having the OnCreate event.
但是,通过重写Create方法,您可以模仿OnCreate事件。 毕竟,在Create构造函数的末尾会触发OnCreate for Forms —因此,覆盖Create for Frames就像具有OnCreate事件一样。
Here's the source code of a simple frame exposing a public property and overriding the Create constructor:
这是暴露公共属性并覆盖Create构造函数的简单框架的源代码:
unit WebNavigatorUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TWebNavigatorFrame = class(TFrame)
urlEdit: TEdit;
urlEdit:TEdit;
private
fURL: string;
procedure SetURL(const Value: string) ;
public
constructor Create(AOwner: TComponent) ; override;
published
property URL : string read fURL write SetURL;
end;
implementation{$R *.dfm}
constructor TWebNavigatorFrame.Create(AOwner: TComponent) ;
begin
inherited Create(AOwner) ;
//"OnCreate" code
URL := 'http://delphi.about.com';
end;
procedure TWebNavigatorFrame.SetURL(const Value: string) ;
begin
fURL := Value;
urlEdit.Text := Value;
end;
end.
The "WebNavigatorFrame" acts as a website launcher hosting an edit and a button control. Note: if you are new to frames, make sure you read the following two articles: visual component development using frames, replacing tabsheets with frames.
“ WebNavigatorFrame”充当托管编辑和按钮控件的网站启动器 。 注意:如果您不熟悉框架 ,请确保阅读以下两篇文章: 使用框架进行可视化组件开发,用框架 替换选项卡。
翻译自: https://www.thoughtco.com/implement-oncreate-event-delphi-tframe-object-1057878