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
[47390] Re:Re:동적폼 생성후 해제(또다시 질문)
freeman [] 1152 읽음    2006-12-12 21:01
친절한 답변에 감사드립니다.
제 의문점은 TMainForm은 destory되지 않고
어떤 특정 이벤트가 발생되면 자꾸 동적으로 Form을 생성합니다. 여기서 Form에 볼일이 다 끝나면
생성된 Form안에 있는 종료 버튼을 클릭하면    Close()함수를 호출하여 종료 하는 구조입니다.
여기서 항상 TMainForm은 destory되지 않고 살아 있습니다. 메인윈도 이기 때문입니다
어떻게 하면 자꾸 동적생성 되는 Form을 종료할때 깨끗이 리소스를 반납할 수 있읍니까 ?
TF->ShowModal();    은 안되고 ,반듯이 Show()로 생성해야 합니다.

장성호 님이 쓰신 글 :
: 자동으로 된다고 해야할것 같네요
ㅇ:
: 생성할때 코드
:
: TF = new TFormProve(this);  // 여기서 파라메타로 넘긴 this 라는것 때문에....
:
: 님의 코드에서 this가  TMainForm 이니
: TMainForm이 destory될때
: TMainForm 을 Owner러 가진 모든 Object들은 delete됩니다.
:
: 동적으로 생성한 Form을 control도 마찬가지구요
:
: --------------------------------------
:
: 만약   생성코드에서
: TF = new TFormProve(NULL);  
: 이렇게 해줬다면
:
: 반드시 직접 delete해줘야하구요
:
: --------------------------------------
: vcl에서  Owner 라는것 요것이 얼마나 이쁜지 ...
: new할때 Owner만 지정만 해주면
: 알아서 delete 해주니 얼마나 편한지 모르겠네요
:
:
:
: freeman 님이 쓰신 글 :
: : TFormProve * TF;
: :
: : 안녕하세요 아래 코드와 같이 버튼을 클릭하면
: : 동적으로 폼이 생성됩니다. 폼에서 작업을 마치고
: : 종료하면 FormClose이벤트가 발생되는데
: : FormClose이벤트에서 아래와 같이 코드를 넣어면
: :
: : TF = new TFormProve(this);
: : ->동적으로생성된
: : 메모리가 자동 해제 됩니까 아니면
: : 이놈을 일일이 delete TF; 해야 합니까
: :
: : void __fastcall TMainForm::Button2Click(TObject *Sender)
: : {
: :        ShowTotalProveWindows("126.63.1.2","cpu부하율");
: :        ShowTotalProveWindows("203.163.121.332","노말부하울");
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall TMainForm::ShowTotalProveWindows(String IP,String Mes)
: : {
: :         TF = new TFormProve(this);
: :         TF->laIP->Caption = IP;
: :         TF->eAnalysisInform->Text = Mes;
: :         TF->Show();      
: : }
: : //-----  동적으로 생성된 Form이 소멸될때 -------
: : void __fastcall TFormProve::FormClose(TObject *Sender,
: :       TCloseAction &Action)
: : {
: :       Action = caFree;
: : }

+ -

관련 글 리스트
47386 동적폼 생성후 해제 freeman 1081 2006/12/12
47387     Re:동적폼 생성후 해제 장성호 1027 2006/12/12
47390         Re:Re:동적폼 생성후 해제(또다시 질문) freeman 1152 2006/12/12
47392             Re:Re:Re:동적폼 생성후 해제(또다시 질문) 장성호 1188 2006/12/12
47395                 Re:Re:Re:Re:동적폼 생성후 해제(또다시 질문) freeman 1235 2006/12/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.