2009-06-23 3 views
3

의 컨트롤 Z 주문 내가 모달 다음과 같이 생성 대화가 어떻게 :이 양식에서델파이 - TOpenDialog

procedure TFormCompose.createParams(var Params: TCreateParams); 
begin 
    inherited createParams(Params); 
    with Params do begin 
      exStyle:=exStyle or WS_EX_APPWINDOW; 
      wndParent:=getDesktopWindow; 
    end; 
end; 

, 나는 TOpenDialog의 인스턴스를 만듭니다. 열리면 메인 애플리케이션 창 뒤에 첫 번째 모달 대화 상자가 전송됩니다.

모달 대화 상자의 Z 순서에 영향을 미치지 않고 TOpenDialog를 열 수있는 방법이 있습니까?

감사합니다.

+1

Delphi 2007을 사용하고 있으므로 창 부모를 변경하는 코드를 제거해야합니다. 최신 버전의 Delphi는 일반적으로 이전 버전에서 부모를 혼란에 빠뜨릴 필요가있는 문제를 해결했습니다. –

답변

5

어떤 델파이 버전을 사용하고 있습니까? Delphi 2007 이상에서는 오버로드 된 TOpenDialog.Execute (ParentWnd : HWND)를 추가합니다. Execute()를 호출 할 때 모달 대화 상자의 핸들을 ParentWnd로 전달하면 도움이 될 수 있습니다.

나중에 참조 할 수 있도록 델파이의 버전을 지정하십시오. 예를 들어, Delphi 2009에 적합한 대답은 Delphi 5를 사용하는 경우별로 유용하지 않을 수 있으며 응답을 제공하는 사람에게는 시간이 낭비됩니다.

+1

Delphi 2007. 지적 해 주셔서 고마워요! –

+1

반갑습니다. :-) –