버그가 아니고 원래 MainFormOnTaskbar의 특성입니다.
그게 문제가 되면 그냥 false로 설정하시면 됩니다.
MainFormOnTaskbar 속성에 대한 설명은 헬프에는 없는데, 델파이 2007의 readme.htm 파일을 보시면 언급되어 있습니다.
(readme.htm 파일은 델파이 2007 설치 디렉토리의 루트에 있습니다)
A new property has been added to TApplication called MainFormOnTaskBar. It defaults to True for new applications and False for existing ones. The property controls how Window's TaskBar buttons are handled by VCL. This property can be applied to older applications, but it affects the Z-order of your MainForm, so you should ensure that you have no dependencies on the old behavior. MainFormOnTaskBar is intended to be set at startup and persist throughout the duration of the application. Changing this property at runtime could result in unexpected behavior. The major reason for this change was to better support several new features available on Windows Vista.
TApplication에 새 속성으인 MainFormOnTaskBar가 추가되었습니다. 이 속성의 값은 새 애플리케이션에 대해서는 기본으로 True이고 기존의 애플리케이션에 대해서는 False입니다. 이 속성은 VCL이 윈도우 작업표시줄 버튼을 어떻게 다룰지를 결정합니다. 이 속성은 기존의 애플리케이션에도 적용될 수 있지만, 메인폼의 Z 오더에 영향을 미치므로 기존의 방식에서 바뀌더라도 문제가 없을지 확인해야 합니다. MainFormOnTaskBar는 애플리케이션이 기동할 때 설정하고 실행 내내 값을 유지하도록 의도된 것입니다. 이 속성을 실행중에 변경하면 예기치 않은 동작을 보일 수 있습니다. 이 속성이 추가된 가장 큰 이유는 윈도우 비스타의 새로운 몇가지 기능들을 더 잘 지원하기 위해서입니다.
"메인폼의 Z 오더에 영향을 미친다..." 라고 되어 있지요. ^^
그럼...
DrK 님이 쓰신 글 :
: RADStudio 2007에서 프로젝트를 새로 만들면 Application.MainFormOnTaskbar := True로 기본으로 설정됩니다. 그런데 Windowx XP에서 이렇게 하며 이상한 동작이 발생합니다.
: Form1, Form2이렇게 2개 만들고 Form2를 Show하도록 한 뒤에.. Form1을 클릭하면 "화면 1" 처럼 Form1이 활성화 되어있음에도 불구하고 앞으로 나오지 않습니다. 당연히 나와야할 것 같은데 말이지요...
:
: 그런데 Application.MainFormOnTaskBar := False로 설정하면 "화면2" 처럼 원하는 데로 앞으로 나옵니다...
:
: Visita가 아닐 경우에는 Application.MainFormOnTaskBar := False 하여야하는지... 버그일까요?.. |