TForm.Create (AOwner)
如何从表单的构造函数中选择正确的参数
当我们在运行时创建继承自 TControl 的对象时,例如 TForm(表单对象),表示该对象的“所有者”的参数必须传递给“创建”构造函数。
构造函数声明如下:
constructor TCustomForm.Create(AOwner: TComponent);
正如我们在前面的语句中看到的,AOwner参数是TForm对象的所有者。表单的所有者负责在必要时从其分配的内存中释放表单。该表单出现在其所有者的 Component 数组中,并在其所有者被销毁时自动销毁。
在这个参数中,我们有三个选项:AOwner: = Nil、Self 和 Application。
让我们看看他们每个人的定义:
Nil:指定表单没有所有者,因此开发人员独自负责释放创建的表单(不再需要时调用FreeAndNil (vForm) 函数)
Self:指定所有者是调用Create方法的同一个对象。例如,如果您正在从按钮的OnClick控制器(此按钮位于MainForm 内)创建表单 ( vForm )的新实例,则self指代“ MainForm ”。所以当MainForm被释放时,它也会释放vForm。
Application:在这种情况下,创建的表单的所有者将是同一个应用程序,并在该应用程序关闭时释放它。
TForm.Create() 示例
procedure TForm1.Button1Click(Sender: TObject);
var
vFormulario1: TForm;
vFormulario2: TForm;
vFormulario3: TForm;
begin
vFormulario1 := TForm.Create(Nil);
vFormulario2 := TForm.Create(Self);
vFormulario3 := TForm.Create(Application);
end;
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.062049150466919 seconds