【问题标题】:Delphi - How Control Z Order Of TOpenDialogDelphi - 如何控制 TOpenDialog 的 Z 顺序
【发布时间】:2010-11-05 06:04:08
【问题描述】:

我有一个使用以下内容创建的模式对话框:

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 实例。当它打开时,它会在主应用程序窗口后面发送我的第一个模式对话框。

有没有办法让 TOpenDialog 打开而不影响模态对话框的 Z 顺序?

谢谢!

【问题讨论】:

  • 由于您使用的是 Delphi 2007,您可能应该摆脱更改窗口父级的代码。较新版本的 Delphi 解决了在以前的版本中通常导致需要与父级混淆的问题。

标签: delphi delphi-2007


【解决方案1】:

您使用的是什么版本的 Delphi? Delphi 2007 及更高版本添加了一个重载的 TOpenDialog.Execute(ParentWnd: HWND);在调用 Execute() 时将模态对话框的句柄作为 ParentWnd 传递可能会有所帮助。

为了将来参考,请确保您指定了哪个版本的 Delphi。例如,如果您使用的是 Delphi 5,则适合 Delphi 2009 的答案对您没有多大用处,而且对于提供答案的人来说是浪费时间。

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2011-08-26
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多