|
초보짱 님이 쓰신 글 :
: 먼저 답변 감사드립니다.
: 그런데 만약에
: form1은 메인폼이고 최초에 생성되고 난 후 프로그램이 종료될때까지 죽을 일이 없고
: form2는 Dialog로써 메이폼이 떠 있는 한 몇 번이고 다시 띄울 수 있다고 하면
: 그리고form2를 전역에 두지 않고 띄울 때마다 동적생성해서 띄운다면
: 띄우고 나서 반드시 메모리 해제를 해야 되잖아요?
: 그럴경우는 어떻게 되는 건가요?
: : : 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;
위의 코드처럼 해주시면 form2에 있는 모든 컴포넌트 (오우너가 form2일 경우) 다 자동으로 죽습니다.
form2->close() 해주셔야죠.. 먼저 답변주신 님 말대로...MFC처럼 Show();하면 실제로 뜨고 close()하면
실제로 창이 사라지며 delete 해면 윈도를 관리하는 TForm2란 넘이 죽으니까요..
|