3

当我们关闭一个框架时,它并没有被释放,它仍然保留在内存中并且仍然被分配。

如何跟踪 TFrame 的 OnClose 事件,以便能够释放框架?

4

1 回答 1

4

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 时调用,它就会在方便的时候尽早释放自己。

于 2013-06-10T16:16:56.197 回答