|
벌써 이 질문만 몇번쨰인데요..
ShowModal을 이용해서 계속해서 폼을 띄우면서도 메인폼이 아닌 폼들은 지워지면서 새로운 폼을
만들려고 하는 것이거든요...
폼1(메인) -> -> 폼2 -> -> 폼3
버튼클릭 버튼클릭 버튼클릭
{ { {
Form2 = new TForm2(this); Form3 = new TForm3(this); Close();
Form2->ShowModal(); Form3->ShowModal(); }
} Close();
}
이게 대충 제가 한 코드였는데요..
이렇게 하면 폼3이 뜰때 폼2가 지워지지가 않아서 이걸 지울려고 하는 것이거든요..
이런 제 허접 질문에 대해서..
헬프에서 ModalResult찾아보라고 하셔서 찾아봤더니..
void __fastcall TOKRightDlg::OKBtnClick(TObject *Sender)
{ ModalResult = mrOk; }
void __fastcall TOKRightDlg::CancelBtnClick(TObject *Sender)
{ ModalResult = mrCancel; }
This code brings up the modal dialog from Form1 when a button is clicked. It causes a Beep if the OK button is clicked.
void __fastcall TForm1::Button1Click(TObject *Sender)
{ if (OKRightDlg->ShowModal() == mrOk) MessageBeep(0); }
이렇게 나와 있는데요..
그리고 어떤 님이..
"" ShowModal() == mrOk될때 새로운 윈도우를 또 ShowModal() 하면 Main Form은 계속 살아 있고 Form2떳따가 Form2 mrOk되면 Form3뜨게 하고 Form2죽고... 이런식으로 하면 될것 같아서요 ""
라고 충고를 주셨거든요..
그러니깐 그 말씀들이 기존의 ShowModal()로 띄운 새폼에 대해서 ModalResult를 mrOk로 한다음 새로운 창을 띄우라는 말 아닌가요? (물론 제 허접한 추측입니다...ㅠㅠ;)
그래서..
이렇게 고쳐봤거든요..
폼1(메인) -> -> 폼2 -> -> 폼3
버튼클릭 버튼클릭 버튼클릭
{ { ModalResult = mrOk; {
Form2 = new TForm2(this); Form3 = new TForm3(this); Close();
Form2->ShowModal(); Form3->ShowModal(); }
} Close();
}
그랬더니 역시나 안되더군요..ㅜㅜ;
어떻게 고쳐야하는거죠???
|