|
용준 님이 쓰신 글 :
: 젤 먼저 뜨는 폼이 메인폼이 되죠...
: 그런데 메인폼이 뜨기전에 다른폼이 먼저뜨게 할 수는 없나요?
: 메인폼전에 로그인폼을 먼저 띄우고 싶어서 그러는데요...
:
: 그리고 메인폼보다 먼저 뜬 로그인폼에서 로그인을 취소하면 메인폼이 뜨질않고 프로그램을 죽일 수도 있나요?
:
: 또한가지 위와 같이 만든 후에 메인폼에서 로그인폼을 다시 불러내어서 로그인폼을 취소 할 경우..이 경우에는 메인폼을 죽여서는 안되거든요...
:
: 이해가 가실래나....
:
: 암튼 아시는분 답변 부탁드립니다..
제가 자주 쓰는 방법은
try {
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->ShowMainForm = false;
Application->Run();
} catch (Exception &exception) {
Application->ShowException(&exception);
}
return 0;
위 처럼 하시면 메인 폼은 안보인 상태입니다..
메인폼 코딩.........................................................
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form2 = new TForm2(this);
Form2->Show(); // ShowModal() 하셔두 됩니다.
}
//---------------------------------------------------------------------------
로그인 창 코딩.........................................................
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{ // 실패시
Close();
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{ // 성공시
Form1->Close();
Form1->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree; // 폼이 닫기면 메모리에서 자동 삭제
}
//---------------------------------------------------------------------------
|