当我在 ButtonClick 事件上从表单调用 OpenDialog 时。该对话框不显示为模式,并且也显示在任务栏中(在 WindowsXP 中)。我可以返回主窗体并一次又一次单击“打开” - 一次弹出多个对话框..
如何在 Firemonkey 中使 OpenDialog 成为模式? 由于 FM 的多平台特性,是否特意不允许出现模式对话框?
编辑:该错误已在更新 3 中修复。
最佳答案
我认为这是一个错误。 FireMonkey 有很多模态类型错误,希望他们很快就能修复它们。目前,即使是模态形式也不是模态的。
对于您的问题,我有一个适用于 Windows 的解决方法,但您可能不喜欢它。
您需要修复 FMX.Platform.Win 中 TPlatformWin.DialogOpenFiles() 方法中的以下行。
在下使用 OpenFile 进行
更改:
hwndOwner := 0;
对此:
hWndOwner := FmxHandleToHWND(Application.MainForm.Handle);
该函数利用 Windows GetOpenFileName
API 调用,尽管它在 Vista 及更高版本中已被弃用。如果传入所有者句柄,则该对话框是模态的,否则不是。
您可能希望将此作为错误连同解决方法一起提交到 qc.embarcadero.com。
关于delphi - 如何让OpenDialog在Firemonkey中显示模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323690/