|
여러개의 폼을 모달로 차례차례 띄웠다, 지웠다..
그러면서 입력을 받아야하는 것이거든요..
여기 질문 올려서 답변 얻은 것이 이건데..
Form7 = new TForm7(thils)
if(Form7->ShowModal() == mrOk) {
Form8 = new TForm8(thils)
if(Form8->ShowModal() == mrOk) {
Form9 = new TForm9(this)
Form9->ShowModal();
delete Form4;
}
delete Form8;
}
delete Form7;
이걸로 하면 입력을 계속 받을수는 있는데..
왜 입력창이 여러개이니깐..
[이전][다시쓰기][다음] 이렇게 세개의 단추가 있는데..
여기서 다음만 눌러서 완료가 된다면, 위의 코드도 문제가 없는데..
[이전]을 누르면 문제가 생겨서..
제가 좀 고쳐봤거든요..
while(1) {
Form7 = new TForm7(this);
if(Form7->ShowModal() == mrOk) {
while(1) {
Form8 = new TForm8(this);
if(Form8->ShowModal() == mrOk) {
while(1) {
Form9 = new TForm9(this);
if(Form9->ShowModal() == mrOk) {
Form11 = new TForm11(this);
Form11->ShowModal(); }
else if(Form9->ShowModal() == mrCancel) {
break; }
}// 세번째 while
if(Form9->ShowModal() == mrCancel)
continue;
else
break;
} //Form8 if문
else if(Form8->ShowModal() == mrCancel) break;
}// 두번째 while
if(Form8->ShowModal() == mrCancel) continue;
}//폼7 if
break;
}// 첫번째 while
이렇게요..
근데 여기서도 약간의 문제가 있더라구요..
문제1.
[이전] 버튼을 두번 눌러야 이전창으로 가더라구요..?
아무래도 while문에서 빠져나왔을때..
모두 완료가 되었는지 아니면 이전으로 넘어가야 하는지 검사하기위해..
대충 else if(Form8->ShowModal() == mrCancel) break; 이렇게 검사를 하는데..
여기서 이전키를 하나 더 먹어버리는것 같은데.. 맞나요?
맞다면.. 이런 코드 없이 그냥 이전키 하나만으로 처리할 순 없을까요?
문제2.
[이전] 버튼을 두번 눌르면 일단 이전 퐁으로 가긴 가는데..
이전 폼으로 돌아가보면..
이전에 입력했던게.. 다 지워져 있더라구요??
이거 어떻게 지워지지 않게 못하나요??
|