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
[69929] Re:Re:Re:Re:창 x버튼을 제어하고 싶습니다.
장성호 [nasilso] 2686 읽음    2013-08-01 14:21
[문제점]
MainForm의 Form생성자나 FormCreate이벤트에서 Close는 동작하지 않습니다.
아직 Show되지도 않았기 때문이죠


[해결방안]
원하시는 기능은
WinMain에서 처리하는것이 좋습니다.

Project1.cpp 에 보면

WinMain함수가 있습니다.


int WinMain(..)
{

   //Main폼을 생성하지 전에 Login-dialog를 생성해서 체크한다.
  Form_Login=new TForm_Login(NULL);
  if( Form_Login->ShowModal() == mrCancel ) 
 {
      delete Form_Login; 
       return 0;
  }

   // 정상적은 진행
  // 생략  ....
  Application->CreateForm(Form_Main,...) //메인폼 생성 
  Application->Run();

 //생략..

}



그럼..


까망이 님이 쓰신 글 :
: 1. 아래처럼 Form1을 Closse 할때 값을 설정해 주시고
:
: void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
: {
:     ModalResult = ResultValue; //ResultValue 는 결과값입니다. 원하는 로직으로 설정하세요 (mrOk, mrCancel)
: }
:
: 2. 리턴받는 데이터를
:
:  __fastcall TForm2::TForm2(TComponent* Owner)
:          : TForm(Owner)
:  {
:          Form1=new TForm1(this);
:          int modalResult =  Form1->ShowModal();  //Form2가 메인일 때 Form1 먼저 출력
:          if(modalResult == mrCanCel)
:          {
:             Form2->Close();
:          }
:  }
:
: 이렇게 설정해주면 될거 같네요.
:
:
: 초보 님이 쓰신 글 :
: : Form2가 메인폼이고 Form1이 서브폼입니다.
: : 그래서
: : void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
: : {
: :         CanClose=true;
: :         Form1->Close();
: :         Form2->Close();
: : }
: : 이렇게 해줘도 x버튼을 누르면 결국 메인폼이 뜹니다.
: :
: : 메인에서는
: : __fastcall TForm2::TForm2(TComponent* Owner)
: :         : TForm(Owner)
: : {
: :         Form1=new TForm1(this);
: :          Form1->ShowModal();  //Form2가 메인일 때 Form1 먼저 출력
: : }
: : 이렇게 설정해 두었구요.
: :
: : memi 님이 쓰신 글 :
: : : Form1->Close();
: : :
: : :
: : : 가거규 님이 쓰신 글 :
: : : : 로그인을 해서 창을 띄우는 형식으로 프로그램을 만들었는데요
: : : : 메인폼이 따로 있고 서브폼으로 로그인을 만들었는데
: : : : 따로 종료 버튼을 만들어서 종료버튼을 누르면 프로그램이 종료됩니다.
: : : : 그렇지만 서브폼 x버튼을 누르면 메인폼이 뜨지요.
: : : :
: : : : x버튼을 누를때 프로그램이 종료되게 하고싶은데
: : : : 어떻게 해야 할까요?

+ -

관련 글 리스트
69918 창 x버튼을 제어하고 싶습니다. 가거규 2992 2013/07/29
69922     Re:창 x버튼을 제어하고 싶습니다. memi 3153 2013/07/30
69923         Re:Re:창 x버튼을 제어하고 싶습니다. 초보 2839 2013/07/30
69924             Re:Re:Re:창 x버튼을 제어하고 싶습니다. 까망이 2466 2013/07/30
69929                 Re:Re:Re:Re:창 x버튼을 제어하고 싶습니다. 장성호 2686 2013/08/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.