장성호님 자세한 답변에 감사드립니다.
그렇다면
void __fastcall TForm::CreateForm()
{
/ /동적 폼 생성
frmCreate = TfrmCreate(this);
//... 중략
frmCreate->Close();
}
위와같이 하고 CreateForm() 함수를 주기적으로 호출하였을 경우
메모리가 계속해서 증가가 될까요?
만약 증가가 된다면 delete frmCreate; 를 추가 하면 해결이 되나요?
장성호 님이 쓰신 글 :
:
: frmCreate = TfrmCreate(this);
:
:
:
: 위와같이 Form이나 Componnet를 생성할경우..
: 파라메터로 넘겨준 this는 생성한 componnet의 Owner가 됩니다.
:
: Owner란? 그 옛날 순장제와 같이.. 주인(Owner)가 죽으면 하인(위에선 frmCreate)도 같이 죽습니다.
:
: 하지만 Owner가 죽기전에 하인(frmCreate)가 죽을수도 있습니다.
:
: 즉 첫번째 방법은 화면만 Close(Visible=false)한 상태이구요
: 두번째 방법은 하면Close후에 하인이 죽는(delete)상태입니다.
:
: 첫번째는 화면만 Close되어있기 때문에 언제든 재 사용가능하구..
: this가 죽을때 같이 죽습니다.
:
:
: 그럼..
:
:
: 탱구리파 님이 쓰신 글 :
: : void __fastcall TForm::CreateForm()
: : {
: : / /동적 폼 생성
: : frmCreate = TfrmCreate(this);
: : //... 중략
: : frmCreate->Close();
: : }
: : 이렇게 했을 경우와
: :
: : void __fastcall TForm::CreateForm()
: : {
: : / /동적 폼 생성
: : frmCreate = TfrmCreate(this);
: : //... 중략
: : frmCreate->Close();
: : delete frmCreate; <-- 추가
: : }
: : 이렇게 했을 경우의 차이점과 어떻게 하는것이 맞는건지 설명 부탁합니다.
|