앞에 답변에서 충분히 설명한것 같은데요
Runtime -Package 사용
Runtime -Package 사용하지 않을 경우 발생하는 문제가 엄청 많습니다.
TPaintBox와 충돌이 정확한 원인이 무엇인지 모르겠지만
TPaintBox와 충돌문제도 어쩌면 그것과 관련이 될지도 모르겠네요
위 답변에 말씀드렸듯이
Runtime -Package를 사용하면 특별한 Dll에서 MDI-ChildForm을 생성하는것이
특별한 방법이 필요없이 그냥 Form을 생성만 하면 된다고...
Runtime -Package 사용 않고 Screen객체 Dll에 설정하지 않고
그래도 굳이 Runtime -Package 사용하지 않고 싶고
Screen객체를 Dll쪽에 넘기지 않고 하고 싶다면...
Dll에서 생성한 Form을 Exe에서 받아서..
1) Screen객체에 강제로 Form을 넣었다 뺐다 하는방법을 사용하는 방법이 있겠구요
2) 더 간단한 방법은?
MDIChildrens[] 배열과 MDIChildCount를 직접 구현하시면 됩니다.
MDI-Child폼은 Create할때 CreateWindow를 호출하지 않고
MDI-Parent폼의 ClinetHandle에 WM_MDICREATE 라는 메세지를 보내서 윈도우를 생성하고
WM_MDIDESTROY 메세지를 보내서 윈도우를 파괴합니다.
위 메세지를 sub-classing해서 생성된 MDI-Child 갯수를 Counting하는데 전혀 문제없을것 같습니다.
그밖에 runtime-package관련 참조
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=808
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=50394
그럼..
그 아이 님이 쓰신 글 :
: 답변 감사드립니다.
:
: 물론 말씀해주신 방법으로 하면 됩니다.
: 제가 원하는 것은 Screen을 넘기지 않고 등록 시키는 방법입니다.
: Screen을 넘기면 제가 그 안에서 생성하는 다른 TPaintBox와 충돌이 일어나서
: 이를 피해 가려고 합니다.
:
: TScreen에 Form을 등록하는 방법이 있으면 조언 부탁드립니다.
|