C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[3826] [질문]MDI사용에서 문제점...
상도 [] 3335 읽음    2000-07-27 00:00
<문제점>
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가 화면에 보이지 않게 할수 없을까?


나름대로 열심히 설명은 하였지만 이해가 되셨는지 모르겠군요...--;
답변을 꼭 부탁드립니다....

[분당에서 상도가]

+ -

관련 글 리스트
3826 [질문]MDI사용에서 문제점... 상도 3335 2000/07/27
3844     Re:[질문]MDI사용에서 문제점... 박지훈.임프 3405 2000/07/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.