C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[9520] Re:화면에 겹쳐진 여러 폼중 내가 원하는 폼이 나타나게 하려면???
최보현 [uriduri] 850 읽음    2001-08-01 19:44
이성수 님이 쓰신 글 :
: 제 소스에서 버그가 발생 했는데 밤을 새워도 답이 나오질 않는군요.
: 내용은 다음과 같습니다.
:
: 메인폼,
: 패스워드입력폼:사용자의 아디와 패스워드를 받는폼
:
: 2개의 폼이 있을때 프로그램 초기실행시 메인폼의 OnActive에서 패스워드입력폼이 모달폼으로 뜨게
: 하였습니다.
:
: 메인폼에서 종료버튼을 클릭하면 메세지박스가 나타나고 Yes/No를 선택 하면 종료를 하게됩니다.
: 이떄 No를 선택하면 패스워드입력폼이 모달로 뜨고요.
: 여기까지는 이상이없는데
: 패스워드입력폼에만든 종료버튼을 클릭하면 메인폼의 OnClose()를 호출하게 되거든요
: 이때 Yes를 선택하면 이상이없지만 No를 선택하면 패스워드 모달폼이 화면에 나타나지 않아요?
: 그래서 윈도우 탐색기나 다른 프로그램을 풀화면으로 띄었다 없애면 나타나더라구요!!!
: 어떻게 해결할수 있을까요?

상당히 애매한 문제 인데요
저도 이글을 세번 읽고서야 이해가 되는군요

일단 메인폼에서 종료 버튼을 누르면, YES/NO 를 물어보구 거기서 NO 를 선택하면...
패스워드 창이뜨는데 이 패스워드차 에서 종료버튼을 누르면 메인의 OnClose 를 호출한다는
야그조~~ 그렇게 되면 다시 메인창에서 YES/NO 를 물어볼테구요....
그럼 거시서 다시 No 를 선택하면 .... 이건 무한루프가 되는거지요~~~ 그렇지요 ....
이미 떠 있는 패스워드 창을 또 다시 띄운다는 야그잖아요 ...

패스워드 창이 ... 일단 동적으로 생성하는 겁니까 아니면... 정적으로 생성된 창을 엑티브만
시키는 겁니까 ? 걸 알아야 할것 같구요 ...

어쨌든 ... 이문제를 해결 할려믄
이렇게 하십시요

패스워드창에서 ... 종료버튼을 누르면 ... 메인의 종료함수 OnClose 를 실행하지 말구 이렇게
메인창에서 말구 패스워드창에서... 직접 YES/NO 를 물어보고 ... No 이면 .... YES/NO 박스가
닫히면서 그냥 바로 패스워드 창이겠조
문제는 YES 인데 YES 를 누르면 메인창을 Close 해야 하잖아요 .. 그럼 OnClose 가 실행 될테구 ...
그럼 다시 YES/NO 를 물어보게 되니깐 ....
OnClose 가 실행이 않되도록 .... 해야 하겠지요
이렇게 ...

MainForm->OnClose = NULL;
MainForm->Close();

이렇게 하면 ... YES 일때 메인창의 OnClose 가 실행 되지 않구 ....
바루 프로그램이 종료 하게 됩니다 ...
그럼 답이 되셨는지요 ....

개박살 보단 조금 나은 허접 현이가 ....






+ -

관련 글 리스트
9518 화면에 겹쳐진 여러 폼중 내가 원하는 폼이 나타나게 하려면??? 이성수 830 2001/08/01
9520     Re:화면에 겹쳐진 여러 폼중 내가 원하는 폼이 나타나게 하려면??? 최보현 850 2001/08/01
9521         Re:Re:화면에 겹쳐진 여러 폼중 내가 원하는 폼이 나타나게 하려면??? 이성수 885 2001/08/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.