|
: 안녕하세요...
:
: Application->CreateForm()으로 폼을 생성하고
: Release()해주는 것과 Free()로 메모리를 해제 시키는것의 차이점...?
:
: TForm *Form1;
:
: Form1 = new TForm1(Application);
: Form1->Update();
: Form1->Show();
: .......
: Form1->Hide();
: Form1->Free();
:
: :->Free()를 하면 메모리 해제가 제대로 되는지도 의문?????
:
임펠리테리입니다.
어디서 Free() 함수의 선언을 보셨는지?
Free() 멤버함수는 직접 호출해서는 안되는 함수입니다. 이 함수는 원래 파스칼버전 VCL의 파괴자
(destructor)입니다. 파괴자는 직접 호출해서는 안되는 거 아시죠?
Release() 함수는 폼의 이벤트핸들러 내에서 폼을 파괴하려고 할 때 쓰이는 함수입니다.
폼의 이벤트 핸들러는 폼의 멤버함수인데, 여기서 폼을 파괴하기 위해 delete this; 와 같은
코드를 써줄 수가 없으므로 대신 Realse라는 멤버함수를 준비한 것입니다. 이 함수를 호출하면
이벤트핸들러의 나머지 코드가 끝나기를 기다렸다가 폼을 파괴합니다.
하지만, 일반적으로는 Close() 멤버함수를 쓰는 것이 더 일반적입니다.
그럼 참고하시길...
|