|
: 임펠리테리입니다.
:
: 어디서 Free() 함수의 선언을 보셨는지?
: Free() 멤버함수는 직접 호출해서는 안되는 함수입니다. 이 함수는 원래 파스칼버전 VCL의 파괴자
: (destructor)입니다. 파괴자는 직접 호출해서는 안되는 거 아시죠?
:
: Release() 함수는 폼의 이벤트핸들러 내에서 폼을 파괴하려고 할 때 쓰이는 함수입니다.
: 폼의 이벤트 핸들러는 폼의 멤버함수인데, 여기서 폼을 파괴하기 위해 delete this; 와 같은
: 코드를 써줄 수가 없으므로 대신 Realse라는 멤버함수를 준비한 것입니다. 이 함수를 호출하면
: 이벤트핸들러의 나머지 코드가 끝나기를 기다렸다가 폼을 파괴합니다.
: 하지만, 일반적으로는 Close() 멤버함수를 쓰는 것이 더 일반적입니다.
:
: 그럼 참고하시길...
Application->Create(__classid(TForm1),&Form1)
Form1->ShowModal();
모달폼에 close이벤트에 Release()를 해도 메모리에 남아있어서
프로그램 Reset을 해주어야만 디버깅이 끝납니다.
그래서
Application->Create(__classid(TForm1),&Form1)
Form1->ShowModal();
Form1->Free();
로 했더니 메모리가 해제 됩니다. Close()이벤트에서는 Release()를 빼고....
|