2013-01-11 3 views
7

원래 Delphi 7로 작성된 응용 프로그램을 유지 관리하고 Delphi XE로 포팅했습니다.Delphi 응용 프로그램 윈도우 z order 및 MainFormOnTaskBar 속성

Windows 7을 사용하면서 사용자가 모달 폼과 상호 작용할 것으로 예상되고 주 창 아래에 있기 때문에 불가능하기 때문에 주 창 아래에 나타나는 모달 창과 프로그램과 상호 작용할 수없는 문제가 발생했습니다 .

이 문제를 방지하기 위해 프로젝트의 MainFormOnTaskBar 속성을 True (이전 프로젝트에는이 속성이 없음)로 변경 했으므로 동일한 프로젝트를 계속 진행합니다. 문서 읽기 새로운 Form 속성 PopupParent을 발견했습니다. MainFormOnTaskBar를 True로 설정하면이 속성을 사용하는 것이 필수입니까? 이 문제에 대한 또 다른 해결책이 있습니까?

답변

5

예, 모달 형태의 그 "팝업에서"당신은 자신의 블로그 게시물 PopupMode and PopupParentAllen Bauer에 의해 설명 된 바와 같이, PopupParent 또는 PopupMode를 사용하여 Z 순서를 수정해야합니다.

MainFormOnTaskBar 문서는 팝 언더과 거의가 말한다 :이 작업 표시 줄의 제목/아이콘 정보가 (당신의 Application 또는 MainForm)에서 얻은 위치를 선택입니다.

그러나 MainFormOnTaskBar := True이 더 많으며 this article by Steve Trefethen (예 : Delphi 팀원)이 더 자세히 설명합니다.

이 "more"는 z- 순서와 관련된 결과를 초래합니다. (이것은 델파이 < = 8 버전에서 대부분의 z 순서 문제의 해결, 당신은 관찰처럼

참고 도킹 일부 형태의 수) MainFormOnTaskBar := False 설정 비스타와 함께 소개 된 마이크로 소프트는 더 많은 기능을 도입하면서 해결해야 할 작은 위업은 아니었지만 이전에는 가지고 있던 몇 가지 자유 애플리케이션을 없앴습니다. Nathanial Woolls의 these 두 글자 articles을 읽어보십시오.

+4

불행히도,'MainFormOnTaskBar'는 몇 HWND가 TaskBar에 나타나는지를 결정하는 것보다 더 많은 것을하기 위해 성장해 왔습니다. 기본적으로 VCL의 많은 Vista + 기능을 사용/사용하지 않도록 설정하는 데 사용됩니다. 그리고 ** ** PopupParent가 nil 일 때 z-order 처리에 사용되는 HWND를 선택하는 데 요인이 ** 있습니다. –

+0

@ allen-bauer가 새로운 블로그 항목을 올릴 시간 (: –

+0

)'MainFormOnTaskBar'가 윈도우 z- 주문에 미치는 영향에 대한 문서가 있습니까? 권장 사항은 표준 vcl 응용 프로그램에서 'true'로 두는 것입니까? – ventiseis