将窗体设置为框架的父级时没有内存泄漏?

Gul*_*har 1 delphi oop

为了避免更复杂的解决方案,框架调用父窗体中的一些例程,以便窗体可以杀死框架...我想知道是否可以简单地将窗体设置为框架的父窗口,并让Delphi调用Frame.Free当用户关闭应用程序?

procedure TForm1.FormShow(Sender: TObject);
var
  Frame2 : TFrame2;
begin
  //Frame2 := TFrame2.Create(nil);
  Frame2 := TFrame2.Create(Self);
  Frame2.Align := alClient;
  Frame2.Parent := Self;
  Frame2.Visible := True;
end;
Run Code Online (Sandbox Code Playgroud)

谢谢.

dum*_*uch 12

实际上你让父母和老板感到困惑:

所有者作为参数传递给构造函数,并将负责释放组件,父级是可视化包含控件的控件.

例:

您有一个表单,该表单上的面板和该面板上的标签:表单通常是面板的所有者和标签.表单是面板的父级,面板是标签的父级.

至于你的问题:将包含框架的表单作为所有者传递是完全可以的.当表单被释放时,它也将释放框架.此外,您必须将父级设置为其他控件才能使框架可见.这当然也可以是形式,但这对释放框架没有任何影响.