我有一个主表格和一个框架。我已经动态地将框架放在窗体上,并将框架的父级设置为窗体上的面板。
当我尝试通过框架上的按钮释放框架时,使用self.free,此后我收到访问冲突错误。
我是初学程序员,我想知道如何从内存中释放帧而不会出现访问冲突错误。
答案 0 :(得分:-2)
如果您想自己控制帧生命周期,请在构建时将所有者设置为nil。然后,您有责任以后释放它。但是,Button1不应该在框架上。
procedure TForm1.CreateFrame;
begin
FFrame := TYourFrameClass.Create(nil); // Onwer is nil (you are responsible for its descruction)
FFrame.Parent := Self.Panel1; // Parent is Panel1 on form (Self = TForm1 instance)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FFrame.Free; // FFrame is a property of TForm1 which points to your dynamically created frame
end;