加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:35:25 所属栏目:大数据 来源:网络整理
导读:我有一个Delphi 7应用程序,它有两个文档视图(例如,所见即所得 HTML编辑可能有WYSIWYG视图和源视图 – 而不是我的实际应用程序).它们可以在单独的窗口中打开,也可以停靠在主窗口中的选项卡中. 如果我从其中一个单独的表单打开模式对话框,则主表单将显示在前面
我有一个Delphi 7应用程序,它有两个文档视图(例如,所见即所得 HTML编辑可能有WYSIWYG视图和源视图 – 而不是我的实际应用程序).它们可以在单独的窗口中打开,也可以停靠在主窗口中的选项卡中.

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

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

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

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

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

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

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读