|
생성한 폼을 TMain에서도 보여(show())주고
다른 서브버튼 폼을 만들어서 그 폼에서도
다른 폼을 불러오려고 합니다.
그래서 헤더파일을 하나 만들어서 구조체를 만들었습니다.
그 구조체에 아래와 같이 각각의 폼의 포인터를 배열에 넣습니다.
###### DataStruct.h #########
struct SCREEN {
TForm* pScreen[30];
TForm* pButton[30];
int i;
};
struct SCREEN SCREEN_LIST;
###### TMain 부분 ##########
__fastcall TMain::TMain(TComponent* Owner)
void __fastcall TMain::InitForm()
{
SCREEN_LIST.pScreen[0] = new Tfrmfuntion(pnlMain);
SCREEN_LIST.pScreen[0]->Parent = pnlMain;
SCREEN_LIST.pButton[0] = new TfrmSubbutton(pnlRight);
SCREEN_LIST.pButton[0]->Parent = pnlRight;
SCREEN_LIST.pScreen[1] = new TfrmRecipe(pnlMain);
SCREEN_LIST.pScreen[1]->Parent = pnlMain;
SCREEN_LIST.pButton[1] = new TfrmRecipeSubbutton(pnlRight);
SCREEN_LIST.pButton[1]->Parent = pnlRight;
}
이렇게 버튼을 눌렀을때 폼을 보여줍니다.
void __fastcall TMain::ToolButton2Click(TObject *Sender)
{
SCREEN_LIST.pScreen[0]->Show();
SCREEN_LIST.pButton[0]->Show();
}
똑같이 다른 폼에서 폼을 보여주기위해 다음과 같이 합니다...
####### TfrmSubbutton 부분 ################
void __fastcall TfrmSubbutton::ToolButton1Click(TObject *Sender)
{
if(SCREEN_LIST.pScreen[1] != NULL)
SCREEN_LIST.pScreen[1]->Show();
}
근데 if문에서 참이 되지 않아 그냥 나가버립니다.
TMain부분에서 구조체에 값을 넣어 줬는데 왜 if문에서 걸리지 않고 나가버리는지 모르겠습니다.
고수님들의 답변 부탁드립니다.
|