2013-06-10 5 views
3

프레임을 닫으면 프레임이 해제되지 않고 여전히 메모리에 남아 있으며 여전히 할당됩니다.닫은 후 TFrame을 해제하는 방법

프레임을 비울 수 있도록 TFrame의 OnClose 이벤트를 추적하는 방법은 무엇입니까?

+0

단순히 '무료'를 호출하지 않는 이유는 무엇입니까? –

+0

프레임을 닫을 때 이벤트 발생이 없기 때문에 David Heffernan에게 무료로 전화를 걸 었습니다. 말해줘. – Vikas

+0

호스트 양식 앞에 프레임을 닫으려는 경우 Free를 호출하십시오. 그렇지 않으면 아무 것도 할 필요가 없습니다. 당신의 실제 문제는 무엇입니까? 그것에 대해 말해. –

답변

3

TFrame에는 OnClose 이벤트가 없습니다. 수동으로 구현하고 추적해야합니다. 그러나 Frame 개체를 해제 할 준비가되면 TForm.Release()이 수행하는 작업을 수행 할 수 있습니다. 자신에게 사용자 지정 메시지를 게시 한 다음 메시지 처리기에서 개체를 해제 할 수 있습니다. 예를 들면 : 당신이 프레임을 확보 할 필요가있을 때

procedure TMyFrame.CMRelease(var Message: TMessage); 
begin 
    Free; 
end; 

procedure TMyFrame.Release; 
begin 
    PostMessage(Handle, CM_RELEASE, 0, 0); 
end; 

type 
    TMyFrame = class(TFrame) 
    private 
    procedure CMRelease(var Message: TMessage); message CM_RELEASE; 
    public 
    procedure Release; 
    end; 
그냥 Release()를 호출하고 그것 빠른 시일 자체를 사용할 수있게됩니다.

관련 문제