저도 MDI form으로는 개발해본적이 없어서 첨에는 어리둥절 했는데요.. 해보니까
되더군요.
제가 분석한 문제는
1. Dialog 성격의 Form을 띄울때 그 Form을 Maximize하지 않았습니다.
그 Form역시 MDIChild로 속성이 지정되어 있는데, MDIChild들은 서로
동기화 되어서 동작하죠. 여러개의 MDIChild form중에 하나라도 Maximize
를 해재하면 다른 것들도 따라서 Maximize가 해제된다는... 슬픈전설이... ^^a;;
원인이 이렇다는걸 알았는데 문제 해결도 쉽지는 않았습니다.
다음과 같이 하시면 됩니다.
1. Dialog성격을 띄는 Form.FormStyle을 MDIChild가 아닌 Normal로 하십시요.
2. Form.Visible 을 FALSE로 설정하십시요.
이렇게 하지 않는다면 폼을 생성하자마자 Form이 보여지게 되어서 속성을
변경할 수 없습니다.
3. MyForm := TMyForm.Create(Application);
MyForm.ShowModal;
과 같이 Dialog 성격의 Form을 보여줄때 Modal로 해서 Show 하십시요.
이렇게 하지 않는다면 Dialog에 내용을 기록하는 도중에 다른 작업을 하게
되어서 프로그래밍 하기에 까다롭게 됩니다.
님께서 보내주신 Source를 보면 doctor.pas 에 있는 157 번째 줄에 3. 의 내용을
적용하면 됩니다.
4. Dialog 성격의 Form은 BorderIcons 에 SystemMenu와 Help만 True로 하고 Minimize와
Maximize를 false로 하는것이 좋습니다.
답이 되었으면 좋겠습니다.
ps : 지금 조금 바빠서요... 혹시 빠트린게 있어서 잘 안되면 다시 질문 하십시요.
|