当我们关闭一个帧时,它没有被释放,它仍然保留在内存中并且仍然被分配。
如何跟踪TFrame的OnClose事件,以便能够释放帧?
答案 0 :(得分: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()
,它就会在最早的时候自由释放。