|
자동으로 된다고 해야할것 같네요
생성할때 코드
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;
: }
|