|
수야 님이 쓰신 글 :
: 안녕하세요 ^^
:
: MDI App 구요
:
: MainForm.h 에 아래와 같이 정의되어있죠
:
: TMDIChild *Child;
: TMDIChild *tempChild;
:
: tempChild는 제가 사용하기위해서 선언했는데요
:
: 다른곳에서 제가 선언한 tempChild를 사용할려고합니다.
:
: 화살표 연산자 말고 다른 사용방법은 없는건가요?
:
: 그러니까..
:
: unit1.h 에다가 TMDIChild *tempChild; 하고 선언해봤는데요
:
: 뭔가가 부족한듯 싶습니다.uni1은 폼이 없는 클래스선언 unit이구요
:
: 어떻게 해야하나요?
:
:
MDI App에서 child폼을 동적으로 생성하고 사용할 때에는
class TMDIMain;
class TMDIChild;
class Test;
이렇게 있으면
보통
TMDIMain::FileOpen(...)
{
TMDIChild *child;
if( OpenFileDialog1->Execute() )
{
child = new TMDIChild( Application );
...
}
}
이런 식으로 생성을 하고,
선택된 MDI Child에 대해서 메뉴등을 실행할 때는
메인내에서는
TMDIChild *child = (TMDIChild *)ActiveMDIChild;
로 사용을 합니다.
근데 위에서 폼이 없는 Test 클래스에서 사용을 하려면
전체 메인 폼의 변수가
TMDIMain *MDIMain;
라고 하면
Test 클래스 내에서는
TMDIChild *child = (TMIDChild *)(MDIMain->ActiveMDIChild);
와 같은 식으로 가져와서
child->Caption = "TEST";
child->Show();
와 같은 식으로 사용하면 됩니다.
|