|
<문제점>
SDI형식의 Project를 MDI형식으로 변환하다가,
이전 프로그램이 각폼끼리 서로 Control, 변수, Method를 다른 폼에서 접근하여
사용, 변환하고 있습니다.
<전제조건>
1. MDI에서는 필요할때만 Child를 New하여 사용하고,
New가 된 Child는 반드시 화면에 나타난다.
2. 만약 New가 되지 않은 Child의 Control, Method,변수를 사용할때는 반드시
에러가 생긴다.
3. MDI에서는 Show된 Child는 Hide()를 사용하여 감출수 없다.
그러므로, 임의의 Form의 Control, Method,변수 에 접근하기 위해서는 반드시
New를 해야하고,
반드시 화면에 보여지고, 감출수 없다.
<상황>
ParentForm,
ChildForm1,
{
Form1_Method1();
}
ChildForm2
{
Form2_Method1();
Form2_Method2();
}
Form1_Method1()
{
if(임의의 상황이 되면)
{
ChildForm2->Form2_Method1();
}
}
Form2_Method1()
{
아무일이나 하다가...;
Form2_Method2();
}
Form2_Method2()
{
아무일이나 한다;
}
1. 위에서 Parent가 ChildForm1의 New하여 사용하다가 Form1_Method1을
사용하려고 할때,
ChildForm2가 New되어 있지 않다면 에러메세지가 나옵니다.(접근에러)
---> 아마도 ChildForm2를 New한후에 사용하라는것 같습니다.
2. 화면에는 ChildForm2가 보여지면 안되는 상황이어서,
ChildForm2를 New하지 못하고 Form2_Method1()만을 ChildForm1에 선언하여
사용하려고하지만,
Form2_Method1()에서는 내부에서 Form2_Method2()를 사용하므로 역시
에러메세지가 나옵니다.(접근에러)
--->역시 ChildForm2를 New한후에 사용하라는것 같습니다.
<문제점 정리>
1. MDIChild class의 내부변수나 함수를 New하지 않고 사용할수는 없을까?
2. (1)이 불가능하다면 New한후에 MDIChild가 화면에 보이지 않게 할수 없을까?
나름대로 열심히 설명은 하였지만 이해가 되셨는지 모르겠군요...--;
답변을 꼭 부탁드립니다....
[분당에서 상도가]
|