3

次のように作成されたモーダル ダイアログがあります。

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 を開く方法はありますか?

ありがとう!

4

1 に答える 1

5

Delphi のどのバージョンを使用していますか? Delphi 2007 以降では、オーバーロードされた TOpenDialog.Execute(ParentWnd: HWND); が追加されます。Execute() を呼び出すときに、モーダル ダイアログのハンドルを ParentWnd として渡すと役立つ場合があります。

今後の参考のために、Delphi のバージョンを必ず指定してください。たとえば、Delphi 2009 に適した回答は、Delphi 5 を使用している場合にはあまり役に立たず、回答を提供する人にとっては時間の無駄になります。

于 2009-06-23T18:06:06.453 に答える