当我们关闭一个框架时,它并没有被释放,它仍然保留在内存中并且仍然被分配。
如何跟踪 TFrame 的 OnClose 事件,以便能够释放框架?
TFrame
没有OnClose
事件。您必须手动实施和跟踪。但是,当您准备好释放 Frame 对象时,您可以执行该TForm.Release()
操作 - 向您自己发布一条自定义消息,然后在消息处理程序中释放该对象。例如:
type
TMyFrame = class(TFrame)
private
procedure CMRelease(var Message: TMessage); message CM_RELEASE;
public
procedure Release;
end;
procedure TMyFrame.CMRelease(var Message: TMessage);
begin
Free;
end;
procedure TMyFrame.Release;
begin
PostMessage(Handle, CM_RELEASE, 0, 0);
end;
只需Release()
在您需要释放 Frame 时调用,它就会在方便的时候尽早释放自己。