|
void __fastcall TFormMain::FormCreate(TObject *Sender)
{
if(x == true){
TForm1 *Form1 = new TForm1(Application);
Form1->Left = 0;
Form1->Top = 0;
Form1->Button1->OnClick = Button1Click;
Form1->Button2->OnClick = Button2Click;
Form1->Show();
}
else{
TForm2 *Form2= new TForm2(Application);
this->Width = Form2->Width;
this->Height = Form2->Height;
Form2->Left = 0;
Form2->Top = 0;
Form2->Button1->OnClick = Button1Click;
Form2->Button2->OnClick = Button2Click;
Form2->Show();
}
}
메인폼은 위와 같구요 Form1,Form2에는 이벤트와 코딩 없이 폼에 컴포넌트들만 올려놨고 컴포넌트 위치들만 서로 다르게 해놨습니다.
(Form1이랑 Form2랑 결과적으로 같은 기능인데 디자인만 다릅니다)
1. 메인의 다른 함수나 이벤트에서도 저 하위폼들의 컴포넌트를 불러서 쓰고싶은데 방법을 모르겠습니다.ㅜㅜ
(예를 들면 메인폼에 타이머를 하나 만들구 온타이머 내에서 Form1-> 이런식으로 사용하고싶은데
저 OnCreate이벤트의 if문 밖에서는 Undefined symbol이라구 되네요 ㅠㅠ)
2. 프로그램이 실행되면 어차피 둘중에 하나만 실행되는거고 둘이 기능이 같은데 동적으로 코딩할수있는 방법 있을까요?
void __fastcall TfrmLCD::FormCreate(TObject *Sender)
{
if(x == true){
TForm1 *frm = new TForm1(Application);
frm->Left = 0;
frm->Top = 0;
frm->Button1->OnClick = Button1Click;
frm->Button2->OnClick = Button2Click;
frm->Show();
}
else{
TForm2 *frm= new TForm2(Application);
frm->Left = 0;
frm->Top = 0;
frm->Button1->OnClick = Button1Click;
frm->Button2->OnClick = Button2Click;
frm->Show();
}
}
이런식으로도 해봤는데 어쨋든 이 if문 밖에서는 frm을 끌어다가 쓸수가 없더군요 ㅠㅠ
|