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
[19488] Re:[왕초보]2개의 폼이 있는데, 버튼을 클릭하면 다음 폼이 뜨고 기존 폼은 닫아야하는데요..
김백일 [cedar] 1010 읽음    2002-06-20 14:38
미혜 님이 쓰신 글 :
: 2개의 폼이 있는데, 버튼을 클릭하면 다음 폼이 뜨고 기존 폼은 닫아야하는데요..
: FrmKor->Show();
: FrmMain->close();
:
: close가 없으면 FrmKor화면이 뜨는데요..
: 기존 화면이 닫혀지지 않아서 close했더니..
: 폼이 전체가 다~ 닫히더라구요..
: 다른 방법이 있나요?

메인 폼을 닫으면 당연히 프로그램 전체가 종료합니다.
메인 폼은 마치 콘솔 프로그램의 main() 함수와 비슷한 역할이지요.
메인 폼을 변경하는 방법은 [Project]-[Options...]-[Forms]에서 하면 됩니다.

1) 첫번째 폼이 메인 폼으로서 대부분의 기능을 담당하고,
두번째 폼이 서브 폼이라면,
그냥 FrmMain->Hide() 로 메인 폼을 숨겨버리세요.
메모리를 아주 절약해야하는 경우가 아니라면 상관없습니다.
원하신다면 나중에 FrmMain->Show() 로 다시 보일 수도 있습니다.
물론 프로그램을 종료할 때는
FrmMain->Close() 를 하면 됩니다.

2) 첫번째 폼이 메인 폼이 아니라, 
메인 폼의 초기 환경을 설정한다는지 하는 기능을 한 후 닫아야 하는 다이얼로그 박스인 경우라면,
(예를 들어 DB프로그램 같은 경우에 ID와 패스워드를 입력받고 DB에 연결하는 경우)
이 첫번째 서브 폼을 Show() 대신 ShowModal()로 열면 됩니다.

이렇게 하려면, 프로젝트이름.cpp 파일을 수정해야 합니다.

//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try {
                Application->Initialize();
                Application->CreateForm(__classid(TSDIAppForm), &SDIAppForm);
                Application->CreateForm(__classid(TdlgDBConnect), &dlgDBConnect);
                              
                if (dlgDBConnect->ShowModal() != mrOk) // 이런 식으로 호출하면 됩니다.
                        // Cancel 버튼을 누르거나, DB 연결에 실패한 경우 프로그램 종료
                        Application->Terminate();

                Application->Run();  // 메인 폼은 여기서 호출합니다.
        } catch(Exception &exception) {
                Application->ShowException(&exception);
        }
       
        return 0;
}
//---------------------------------------------------------------------


+ -

관련 글 리스트
19485 [왕초보]2개의 폼이 있는데, 버튼을 클릭하면 다음 폼이 뜨고 기존 폼은 닫아야하는데요.. 미혜 699 2002/06/20
19488     Re:[왕초보]2개의 폼이 있는데, 버튼을 클릭하면 다음 폼이 뜨고 기존 폼은 닫아야하는데요.. 김백일 1010 2002/06/20
19508         Re:Re해보았는데 다음과 같이 에러가 뜨는 이유는? 하안인 678 2002/06/20
19514             Re:Re:Re해보았는데 다음과 같이 에러가 뜨는 이유는? 김백일 732 2002/06/20
19506         Re:Re:[왕초보]잘 안되서 그러는데요. 다시 한번만 봐주세요. 부탁드립니다. 미혜 716 2002/06/20
19515             Re:Re:Re:[왕초보]잘 안되서 그러는데요. 다시 한번만 봐주세요. 부탁드립니다. 김백일 719 2002/06/20
19487     Re:[왕초보]2개의 폼이 있는데, 버튼을 클릭하면 다음 폼이 뜨고 기존 폼은 닫아야하는데요.. 송득보 903 2002/06/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.