C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[35498] [질문]Form이 닫힐때의 메모리 관련 질문입니다.
초보짱 [skyb612] 914 읽음    2004-06-09 14:05
TForm1을 하나 만들고 그 위에다가 버튼을 하나 올리구요.
버튼을 누르면 새로운 Form2가 뜨도록 했습니다.
Form2는 BorderStyle이 bsDialog입니다.
그리고 Form2에는 버튼과 몇개의 VCL 컴포넌트만 올렸죠.
다음은 Form1의 버튼이 Click되었을 때의 코딩입니다.
(물론 Form2의 임의의 버튼의 ModalResult를 mrOk로 설정해두었습니다.)

01: void __fastcall TForm1::Button1Click(TObject *Sender)
02: {
03:     TForm2 *form2 = new TForm2(this);
04:     int result = form2->ShowModal();
05:     if (result == mrOk) {
06:         MessageDlg("OK", mtWarning, TMsgDlgButtons() << mbOK, 0);
07:     }
08:
09:     delete form2;
10: }

<질문 1>
09번째 line이 없는 경우 Form2의 소멸자는 구현되어 있지 않고,
09번째 line이 있는 경우 Form2의 소멸자에서 명시적으로
Form2에 있는 모든 컴포넌트들을 delete했습니다.
그러나 두 경우 다 Form2가 닫힌 후에도 메모리가 해제되지 않았습니다.
왜 그런가요?

<질문 2>
Form위에 동적생성하지 않은 컴포넌트들을 소멸자나 Close()등에서
명시적으로 delete 해주어야 하나요?
만약, 그렇다면 소멸자는 언제 어떤식으로 호출해주어야 하나요?
만약, 그렇지 않다면 소멸자는 언제 호출되어서 메모리를 해제하나요?

궁금합니다.
고수님들의 답변 부탁드립니다.

+ -

관련 글 리스트
35498 [질문]Form이 닫힐때의 메모리 관련 질문입니다. 초보짱 914 2004/06/09
35502     Re:[질문]Form이 닫힐때의 메모리 관련 질문입니다. 김상면 1152 2004/06/09
35514         Re:Re:[질문]Form이 닫힐때의 메모리 관련 질문입니다. 초보짱 1123 2004/06/10
35505         Re:Re:[질문]Form이 닫힐때의 메모리 관련 질문입니다. Builder MySelf 1501 2004/06/09
35513             Re:Re:Re:[질문]Form이 닫힐때의 메모리 관련 질문입니다. 초보짱 923 2004/06/10
35521                 Re:Re:Re:Re:[질문]Form이 닫힐때의 메모리 관련 질문입니다. Builder MySelf 921 2004/06/10
35515                 Re:Re:Re:Re:[질문]Form이 닫힐때의 메모리 관련 질문입니다. 김성연 866 2004/06/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.