【发布时间】:2012-01-09 13:20:27
【问题描述】:
当我在 ButtonClick 事件上从我的表单中调用 OpenDialog 时。该对话框不显示为模式,也显示在任务栏中(在 WindowsXP 中)。我可以返回主窗体并一次又一次地单击打开 - 一次弹出多个对话框..
如何使 OpenDialog 在 Firemonkey 中成为模态? 是不是专门为了FM的多平台特性而不允许模态对话框?
编辑:该错误已在更新 3 中修复。
【问题讨论】:
-
刚刚代表你做了很多实验,似乎没有办法让它成为模态。不仅如此,它似乎还请求平台生成并显示打开对话框,这似乎在单独的线程上运行。在这个阶段我能想到的最好的方法是隐藏表单,执行打开对话框,然后显示表单。这很糟糕,但这是一种方式!
-
或者,您可以让一个透明的面板覆盖表单的控件(或禁用每个控件),或者为表单添加模糊效果,执行打开的对话框,然后在对话框之后撤消这些更改关闭。不过,这些都不是优雅的解决方案。
-
感谢您的回复和努力!
-
我建议您在 QC 上发布您的问题!做到这一点,在此处发布链接......我将尝试使用 Embarcadero 为您重点关注它。在我看来,这实际上是一个重大缺陷!如果不是模态的,Dialog 是没用的,而且这种行为莫名其妙地破坏了线性执行模型!
-
很遗憾我还没有 QC 帐户。
标签: delphi modal-dialog delphi-xe2 firemonkey fileopendialog