当前位置:  开发笔记 > 前端 > 正文

多种形式的Delphi应用程序和对话框

如何解决《多种形式的Delphi应用程序和对话框》经验,为你挑选了1个好方法。

我有一个Delphi 7应用程序,它有两个文档视图(例如,所见即所得HTML编辑可能有WYSIWYG视图和源视图 - 而不是我的真实应用程序).它们可以在单独的窗口中打开,也可以停靠在主窗口中的选项卡中.

如果我从其中一个单独的表单打开模式对话框,则主表单将显示在前面,并在Windows任务栏中显示为选定的窗口.假设主窗体是WYSIWYG视图,并且源视图被激活.您转到源视图中的特定点并插入图像标记.将出现一个对话框,允许您选择并输入图像所需的属性.如果WYSIWYG视图和源视图重叠,则WYSIWYG视图将显示在前面,并且隐藏源视图.一旦对话框被解除,源视图就会重新出现.

我已经尝试将所有者和ParentWindow属性设置为与其相关的表单:

dialog := TDialogForm.Create( parentForm );
dialog.ParentWindow := parentForm.Handle;

我该如何解决这个问题?我还应该尝试什么?

鉴于人们似乎对我的例子感到磕磕绊绊,也许我可以尝试一个更好的例子:一个文本编辑器,允许你同时打开多个文件.您打开的文件位于选项卡(如Delphi IDE中)或其自己的窗口中.假设用户调出拼写检查对话框或查找对话框.发生的情况是,如果文件正在其自己的窗口中进行编辑,则在显示模式对话框时,该窗口将以z顺序发送到主窗体下方; 关闭对话框后,它将返回到原始的z顺序.

注意:如果您正在使用Delphi 7并寻找此问题的解决方案,请在页面下方查看我的答案,看看我最终做了什么.



1> Marius..:

我会使用这段代码......(基本上是Lars所说的)

dialog := TDialogForm.Create( parentForm );
dialog.PopupParent := parentForm;
dialog.PopupMode   := pmExplicit; 
dialog.ShowModal();

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有