|
안녕하세요?
결론부터 말씀드리자면 수동으로 폼을 생성했을 경우
직접 다시 해제시켜주어야 합니다.
MainForm의 FormDestroy 이벤트 핸들러에서 직접 delete 연산자를 이용해서
해제해 주세요.
그리고 Auto-create form은 말씀하신대로 알아서 해제되고요..
동적으로 할당해준 메모리를 해제해 주는 것을 잊어버리게 되면
"메모리 누수"가 일어나게 되는데 이러한 것을 검사하는 기능이
씨빌더 6에는 기본으로 들어 있습니다.
프로젝트의 옵션에서 찾아보시면 Code Guard 라는 것이 동작해서 설정할 수
있습니다. 그러면 이러한 메모리 누수가 일어나면 에러 메시지를 띄워줍니다.
행복하세요.
친구3 님이 쓰신 글 :
: 현재 한개의 FORM에서 여러개의 FORM2,FORM3....을 뛰우려고 합니다.
: 자동으로 활당하는 방식이 아닌 수동으로
:
: Project메뉴의 맨 밑에 있는 Options을 클릭해서 Project Options를 열고 Forms태그에서 Auto-create forms에 있는 TForm2를 Available forms로 옮기고 컴파일 했고, 버튼을 눌렀을때
: 다음과 같이 폼을 생성했읍니다.
: Application->CreateForm (__classid(TForm2), &Form2);
:
:
: 프로그램을 종료하기위해서 먼저 FORM2을 종료 했읍니다.(FORM2의 CloseForm의 이벤트에서 아무런값도 설정하지 않았읍니다)또 main form은 종료하지 않고요
:
: 이런 순서로 작업을 하면, 메모리에 아직 form2가 남아 있는지 궁금하고요, 확인하는 방법은 없나요.
:
: main form을 종료하면, form2도 메모리에서 사라지나요. 확인 방법은?
:
:
: 즉, 질문의 내용은 main form은 자동으로 생성했으니까 mani form종료시 자동으로 메모리에서
: 해제될것 같은데, main form에서 수동르로 생성한 form2는 main form종료시 자동으로 해제되는지
: 아니면, CloseForm2에서 수동으로 종료를 시켜야하는지 궁금합니다
:
: 자세한 답변을 드립니다.
:
:
:
:
|