Multiple form Delphi applications and dialogs我有一个具有两个文档视图的Delphi 7应用程序(例如,所见即所得HTML编辑可能具有所见即所得视图和源视图-不是我的真实应用程序)。它们可以在单独的窗口中打开,也可以停靠在主窗口的选项卡中。 如果我从其中一个单独的表单中打开模式对话框,则主表单将显示在最前面,并在Windows任务栏中显示为选定的窗口。说主要的形式是所见即所得的视图,并弹出源视图。您转到源视图中的特定点并插入图像标签。出现一个对话框,允许您选择并输入图像所需的属性。如果WYSIWYG视图和源视图重叠,则WYSIWYG视图将被带到最前面,并且源视图被隐藏。取消该对话框后,源视图将重新显示。 我尝试将所有者和ParentWindow属性设置为与之相关的形式:
如何解决此问题?我还应该尝试什么? 鉴于人们似乎对我的示例感到困惑,也许我可以尝试一个更好的示例:一个文本编辑器,它允许您同时打开多个文件。您打开的文件位于选项卡中(例如在Delphi IDE中)或位于其自己的窗口中。假设用户调出拼写检查对话框或查找对话框。发生的情况是,如果文件正在其自己的窗口中进行编辑,则在显示模式对话框时,该窗口将以z顺序发送到主窗体下方;关闭对话框后,它将返回到其原始的z顺序。 注意:如果您使用的是Delphi 7,并且正在寻找解决此问题的方法,请在页面的下方查看我的答案,以查看最终要执行的操作。 我将使用此代码...(基本上是拉斯所说的话)
我最终使用Google网上论坛找到了答案。简而言之,所有模式对话框都需要添加以下内容:
我想这与Delphi 7中的Lars \\'和Marius \\'答案相当。 使用ShowModal还是仅显示对话框?您可能应该将对话框的PopupMode属性设置为正确。 pmAuto可能是您最好的选择。另请参阅是否需要设置PopupParent属性。 我不确定我是否很了解你的意思,但是我可以建议您尝试一下... 我怀疑您发现的内容已在此链接上讨论过 首先,我不确定我是否完全遵循,您可能需要提供一些其他详细信息,以帮助我们了解正在发生的事情和问题所在。我想我不确定我是否完全了解您要完成的任务以及问题所在。 第二,您不需要设置对话框的父级,因为从本质上讲,这是调用Create(传递父级)时发生的事情。老实说,您正在描述的对话框听起来可能会使用一些"重新思考"。该对话框是输入图像属性的对话框,是源窗口还是"所见即所得"窗口的子窗口? |