如何在Delphi Firemonkey中设置OpenDialog为模态对话框显示?

2026-04-10 17:122阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计313个文字,预计阅读时间需要2分钟。

如何在Delphi Firemonkey中设置OpenDialog为模态对话框显示?

在ButtonClick事件中,当从我的表格调用OpenDialog时,该对话框不显示为模态,且在任务栏中显示(在Windows XP中)。我可以返回主窗口体并再次单点击打开+ - 弹出几个对话框。如何在Firemonkey中实现返回主窗口体并再次单点击打开+ - 弹出几个对话框?

当我在ButtonClick事件上从我的表单调用OpenDialog时.该对话框不显示为模态,也显示在任务栏中(在 WindowsXP中).我可以返回主窗体并再次单击打开 – 一次弹出几个对话框..

如何在Firemonkey中使OpenDialog成为模态?
是否专门制作,因为FM的多平台安全性不允许模态对话框?

编辑:该错误已在Update 3中修复.

我认为这是一个错误. FireMonkey有很多模态类型的错误,希望他们很快就会修复它们.目前,即使是模态形式也不是模态的.

对于您的问题,我有一个Windows的解决方法,但您可能不喜欢它.

如何在Delphi Firemonkey中设置OpenDialog为模态对话框显示?

您需要在FMX.Platform.Win中的TPlatformWin.DialogOpenFiles()方法中修复以下行.

在OpenFile下进行更改:

hwndOwner := 0;

对此:

hWndOwner := FmxHandleToHWND(Application.MainForm.Handle);

该函数使用Windows GetOpenFileName API调用,即使它在Vista及更高版本上已弃用.如果传入所有者句柄,则对话框是模态的,否则不是.

您可能希望将此错误提交给qc.embarcadero.com以及解决方法.

本文共计313个文字,预计阅读时间需要2分钟。

如何在Delphi Firemonkey中设置OpenDialog为模态对话框显示?

在ButtonClick事件中,当从我的表格调用OpenDialog时,该对话框不显示为模态,且在任务栏中显示(在Windows XP中)。我可以返回主窗口体并再次单点击打开+ - 弹出几个对话框。如何在Firemonkey中实现返回主窗口体并再次单点击打开+ - 弹出几个对话框?

当我在ButtonClick事件上从我的表单调用OpenDialog时.该对话框不显示为模态,也显示在任务栏中(在 WindowsXP中).我可以返回主窗体并再次单击打开 – 一次弹出几个对话框..

如何在Firemonkey中使OpenDialog成为模态?
是否专门制作,因为FM的多平台安全性不允许模态对话框?

编辑:该错误已在Update 3中修复.

我认为这是一个错误. FireMonkey有很多模态类型的错误,希望他们很快就会修复它们.目前,即使是模态形式也不是模态的.

对于您的问题,我有一个Windows的解决方法,但您可能不喜欢它.

如何在Delphi Firemonkey中设置OpenDialog为模态对话框显示?

您需要在FMX.Platform.Win中的TPlatformWin.DialogOpenFiles()方法中修复以下行.

在OpenFile下进行更改:

hwndOwner := 0;

对此:

hWndOwner := FmxHandleToHWND(Application.MainForm.Handle);

该函数使用Windows GetOpenFileName API调用,即使它在Vista及更高版本上已弃用.如果传入所有者句柄,则对话框是模态的,否则不是.

您可能希望将此错误提交给qc.embarcadero.com以及解决方法.