|
인학님의 답변에서 힌트를 얻어 코딩을 해봤는데 아직 완전하지 않네요.
잘 동작하다가 프로그램이 다운됩니다.
메인폼 외에 15개의 폼이 있거든요.
아래 코딩의 문제점 좀 알려주세요.
글구 Close()함수를 사용하는 것과 FormClose 이벤트에 Action=caFree를 사용하는 것은 같은
기능을 하나요?
[Main.h]에
__published: // IDE-managed Components
TToolBar *ToolBar1;
TToolButton *ToolButton1;
TToolButton *ToolButton2;
TToolButton *ToolButton3;
.
.
.
TToolButton *ToolButton15;
void __fastcall ToolButton1Click(TObject *Sender);
void __fastcall ToolButton2Click(TObject *Sender);
.
.
.
void __fastcall ToolButton15Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void Close_all(void);
[Main.cpp]를 보면,
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
Close_all();
Application->CreateForm(__classid(TForm2), &Form2);
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
Close_all();
Application->CreateForm(__classid(TForm3), &Form3);
Form3->Show();
}
//---------------------------------------------------------------------------
각 버튼클릭 이벤트의 내용은 동일합니다.
void TForm1::Close_all(void)
{
if(Form2!=NULL) Form2->Close();
if(Form3!=NULL) Form3->Close();
if(Form4!=NULL) Form4->Close();
.
.
.
if(Form16!=NULL) Form16->Close();
}
|