我有一个Delphi 7应用程序,其中包含文档的两个视图(例如,WYSIWYG HTML编辑器可能具有WYSIWYG视图和源视图 - 不是我的真实应用程序)。它们可以在单独的窗口中打开,也可以停靠在主窗口的选项卡中。
如果我从其中一个单独的表单中打开模态对话框,则主表单将被置于前景,并显示为Windows任务栏中的选定窗口。假设主表单是WYSIWYG视图,并且源视图弹出。您进入源视图中的特定点并插入图像标记。出现一个对话框,允许您选择和输入所需的图像属性。如果WYSIWYG视图和源视图重叠,则WYSIWYG视图将被置于前景,而源视图将被隐藏。一旦对话框关闭,源视图就会重新出现。
我尝试将Owner和ParentWindow属性设置为相关的窗体:
dialog := TDialogForm.Create( parentForm ); dialog.ParentWindow := parentForm.Handle;
如何解决这个问题?我还应该尝试什么?
鉴于人们似乎在我的示例上遇到了困难,也许我可以使用更好的示例:文本编辑器允许您同时打开多个文件。您打开的文件要么在选项卡中(如在Delphi IDE中),要么在自己的窗口中。假设用户打开拼写检查对话框或查找对话框。发生的情况是,如果文件正在其自己的窗口中进行编辑,则模态对话框显示时,该窗口将被发送到主窗体下方的z顺序;一旦关闭对话框,它将返回到原始z顺序。
注意:如果您使用Delphi 7并寻找解决此问题的解决方案,请参见本页面下面我的答案以查看我最终采取的措施。
如果我从其中一个单独的表单中打开模态对话框,则主表单将被置于前景,并显示为Windows任务栏中的选定窗口。假设主表单是WYSIWYG视图,并且源视图弹出。您进入源视图中的特定点并插入图像标记。出现一个对话框,允许您选择和输入所需的图像属性。如果WYSIWYG视图和源视图重叠,则WYSIWYG视图将被置于前景,而源视图将被隐藏。一旦对话框关闭,源视图就会重新出现。
我尝试将Owner和ParentWindow属性设置为相关的窗体:
dialog := TDialogForm.Create( parentForm ); dialog.ParentWindow := parentForm.Handle;
如何解决这个问题?我还应该尝试什么?
鉴于人们似乎在我的示例上遇到了困难,也许我可以使用更好的示例:文本编辑器允许您同时打开多个文件。您打开的文件要么在选项卡中(如在Delphi IDE中),要么在自己的窗口中。假设用户打开拼写检查对话框或查找对话框。发生的情况是,如果文件正在其自己的窗口中进行编辑,则模态对话框显示时,该窗口将被发送到主窗体下方的z顺序;一旦关闭对话框,它将返回到原始z顺序。
注意:如果您使用Delphi 7并寻找解决此问题的解决方案,请参见本页面下面我的答案以查看我最终采取的措施。