分配给 Setparent(..) 后 Showmodal 出现问题

2023-11-30

我创建了两个应用程序 MainApps 和 SubApps,SubApps 有一个模式类型对话框,例如登录/注销表单等,并且工作正常。

将其附加到 MainApps 后,模态对话框显示为正常的框形式。它的行为类似于“DIALOG.SHOW”而不是“DIALOG.SHOWMODAL”;

我正在使用delphi编译器

单击子应用程序按钮;

  begin
    with TfrmDialog.Create(Self, dtLogout) do
    try
      iMsgResult := ShowModal;
    finally
      Free;
    end;
    if iMsgResult = mrOk then
    begin
      dmVoca.FHomeworkXMLDoc.Active := False;
      //Disabled Double Login
      dmVoca.tmrDoubleLogin.Enabled := False;
      ................
    end;  
  end;

单击主要应用程序按钮

begin
setparent(findwindow(nil,'SubApps'),TabSheet1.Handle);
.........
end;

不要感到惊讶,你正在尝试的事情充其量只是不寻常。ShowModal通过禁用调用线程除模态窗体之外的所有窗口来实现模态效果。由于您的父窗体不属于同一线程,甚至不属于同一进程,因此它不会被禁用。看DisableTaskWindows在 forms.pas 中了解调用“ShowModal”时如何禁用表单。

您必须设计自己的模态程序;测试应用程序是否在不是桌面的顶级窗口中建立父级,如果是这种情况,请禁用该窗口。

但如果我是你,我会首先考虑设计,如果,例如,你关闭父窗体,你如何结束父窗体的进程?


edit: for 3rd comment below - you might try having the modal form "owned" by the MainApps's form. Similiar to forms being owned by the application main form while MainFormOnTaskbar is true. See owned windows on Window Features topic of msdn.
var
  frmDialog: TfrmDialog;
begin
  [...]
  frmDialog := TfrmDialog.Create(Self, dtLogout);
  try
    SetWindowLong(frmDialog.Handle, GWL_HWNDPARENT, GetAncestor(Handle, GA_ROOT));
    iMsgResult := frmDialog.ShowModal;
    [...]


我谦虚地建议你提出一个关于你想要实现的设计建议的问题,例如,如果它是关于代码重用,你可以在 dll 中托管你的 SubApps 表单......这个设计很脆弱,你可能会继续遇到问题...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分配给 Setparent(..) 后 Showmodal 出现问题 的相关文章

  • Delphi 是否在构造对象之前分配变量?

    Delphi 是否在对象完全构造之前分配实例变量 换句话说 给定一个变量 var customer TCustomer nil 然后我们构造一个客户并将其分配给变量 customer TCustomer Create 有没有可能custom
  • 从不同的形式调用过程

    我正在使用 Lazarus 我有一个名为TForm1单元名称为 Unit 1 在这里我有一个名为mergeDATfile a shortint 这会产生一些东西 顺便说一句 我必须创建另一个名为TForm2里面有按钮 Button1 当它被
  • Django 模型表单中的必填字段

    我有一个表格 当我也不想要它们时 会根据需要显示几个字段 这是来自 models py 的表格 class CircuitForm ModelForm class Meta model Circuit exclude lastPaged d
  • Firebird 或 NexusDB

    我知道有很多与 Delphi 数据库相关的问题 但我只考虑这两个数据库 我需要查询大约 100 000 条记录 根据您的经验 哪个更快 作为嵌入式 as C S Thanks 我还没用过 Nexus tbh 但我经常使用 Firebird
  • Bootstrap 验证器表单插件:如何更改反馈图标

    The 引导验证器 http 1000hz github io bootstrap validator 插件有助于验证表单字段 提供一系列很酷的功能 这些功能之一是反馈图标 默认为字形 假设我想用 font Awesome 替换 glyph
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • 如何区分两个同名的多选列表

    对于我正在构建的系统 我需要查看第一个列表中出现了哪些选项 通过 POST 请求 以及第二个列表中出现了哪些选项
  • Symfony2 无效形式且无错误

    我的 Symfony2 生成的 CRUD 表单有问题 与MongoDB文档 但我不认为这是相关的 在我的控制器的 createAction 方法中 当我调试表单结果时 form gt isValid returns false form g
  • IE8 - 隐藏 div 内的表单,返回键不再起作用

    我有一个登录表单 位于带有 display none 的 div 中 然后我使用 jquery 淡入表单 但 Enter Return 键不再提交表单 如果我将显示更改为阻止 则效果很好 此问题仅存在于 IE 中 有任何想法吗 这是一个不起
  • 模态窗口内的 video.js:全屏不起作用

    我一直在使用 video js 在模态窗口内显示内容 正如您在此处看到的 http www csdalbenga it galleria1 html http www csdalbenga it galleria1 html 点击 Clic
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • Rails 3:用户创建自定义表单?

    我正在尝试思考如何允许用户创建具有所有字段类型的自定义表单 如果有一颗宝石那就太好了 但我似乎无法在任何地方找到它 所以我有一个像这样的数据库设置 t integer form id t string name t string hint
  • 如何使用showModal按照承诺完全屏蔽外部内容?

    我正在尝试修改页面行为javascript 书签 因为我无法在当前环境中制作插件 或几乎其他任何东西 几乎一切都工作正常 除了某些页面中预期的输入键 其中包含某种全局捕获 发生的事情是这样的 function window dialog d
  • 使用 (Object as TClass) 和 TClass(Object) 进行强制转换有什么区别

    有问题在哪里MyObj classnameis TMyClass classname 是真的并且TMyClass MyObj 有效但是 MyObj as TMyclass doSomething抛出转换错误 我真的不需要任何关于这些垃圾的帮
  • 使用 IdTCPClient 和 IdTCPServer 发送和接收 TMemoryStream

    我在 XE2 中找到了 Remy Lebeau 的 IdTCP 组件聊天演示 我想玩一下 可以发现 我想使用这些组件发送图片 最好的方法似乎是使用 TMemoryStream 如果我发送字符串 连接工作正常 字符串传输成功 但是当我将其更改
  • 如何使用 Symfony2 使 form_rest() 不显示字段?

    我已经开始使用 Symfony2 但遇到了一些问题 我想手动渲染字段 但它不起作用 因为我尚未渲染的字段显示为form rest 函数也一样 所以我有两个相同的字段 这是我的代码 div form errors form contenu d
  • SSL 错误 1409442E 使用 TIdHTTP 通过 HTTPS 下载文件 [重复]

    这个问题在这里已经有答案了 我正在使用德尔福10 3 3 下面的代码曾经有效 但现在尝试通过 HTTPS 下载文件时遇到错误 连接 SSL 错误错误 1409442E SSL 例程 SSL3 READ BYTES tlsv1 警报协议版本
  • 当 datasnap 服务器中的用户授权失败时,是否可以更改响应代码?

    当用户授权失败时 是否可以更改 DataSnap Delphi XE3 服务器中的 HTTP 响应代码 目前正在回归HTTP 1 1 500 内部服务器错误 这可能发生在许多其他场景中 并且无助于描述问题 按照同样的想法 是否可以更改默认的
  • Delphi XE 和 OmniXML:使用 SelectNode()?

    我将以下 XML 片段作为一个更大的 XML 文件的一部分 我正在使用最新的 OmniXML 快照进行处理
  • 如何等到我启动的程序使用完该文件后才删除该文件?

    我一直在寻找一种方法来打开通过 Delphi 应用程序及其适当的应用程序保存到我的计算机上的文件 该文件存储在 SQL 数据库中的 Varbinary 字段中 加载到内存流中 然后通过 TMemoryStream 的 SavetoFile

随机推荐

  • 在 Python 中集成值列表

    我有一个数据列表 代表加速度 为了简单起见 我们假设这个列表是 X 1 2 3 4 5 我想将此列表中的每个值集成两次 双重集成 以便我可以检索有关位置的信息 快速提醒 位置 速度 加速度是相关的 您可以通过两次求导来找到加速度 或者 如果
  • C# 中“抽象覆盖”有什么用?

    出于好奇 我尝试重写基类中的抽象方法 并方法实现抽象 如下 public abstract class FirstAbstract public abstract void SomeMethod public abstract class
  • 使用线程逐块处理文件

    我有一个由 5000 个 IP 地址组成的数组列表 对于每个 IP 地址 我想执行 SNMPGet 请求和 FTPDownload 命令 我想以一种方式实现它 其中一次有 2 个不同的线程针对前 5 个 IP 地址同时运行 执行完这些 IP
  • 如何转发声明命名空间中的类

    我试图在头文件中使用前向声明来减少 include使用 因此当用户包含我的头文件时减少依赖性 但是 我无法转发声明使用名称空间的位置 请参见下面的示例 File a hpp ifndef A HPP define A HPP namespa
  • 我们可以使用Spring批量分区和rabbitmq同时运行具有不同参数的同一作业的多个作业实例吗

    我已经使用 spring 批处理分区并使用rabbitmq 作为中间件来实现我的批处理作业 我研究了文档并参考了这些单元测试 https github com sshcherbakov spring batch talk blob mast
  • Bootstrap *垂直*响应能力

    无需将宽度管理委托给 Bootstrap 我可以获得三个全高列 使用以下 HTML CSS
  • 检查 JUnit 扩展是否抛出特定异常

    假设我开发了一个扩展 它不允许测试方法名称以大写字符开头 public class DisallowUppercaseLetterAtBeginning implements BeforeEachCallback Override publ
  • Google 电子表格 importHTML 无法获取 URL

    有人可以帮我确认一下吗 我正在帮助某人解决 Google 电子表格上的 importHTML 问题 我不熟悉 importHTML 但我认为它应该可以工作 importhtml http www stockq org table 1 我不在
  • 禁用某些字段的验证

    我有一个 ViewModel 用于添加具有以下属性的用户 电子邮件 密码 确认密码 所有属性均具有必需属性 编辑用户时 我希望不需要密码和确认密码属性 有没有办法在不同的控制器操作中禁用某些属性的验证 或者最好创建一个单独的 EditVie
  • 将一个数字插入已排序的数组中!

    我想编写一段代码 用于将数字插入到排序数组中的适当位置 即数组在插入后仍应保持排序状态 我的数据结构不允许重复 我打算做这样的事情 使用二分搜索找到应该放置该元素的正确索引 通过将所有元素从该索引向下移动来为此元素创建空间 把这个元素放在那
  • 更改 gradle 多模块项目的工作目录

    我是来自 Maven 的 Gradle 新用户 由于多模块构建中的工作目录问题 我在 CI 构建中遇到了一些障碍 具体来说是单元测试 因为我有一些单元测试正在加载与子项目目录相关的资源 如果我单独构建项目 一切都会按预期进行 如果我使用主
  • Google Recaptcha 内部错误

    我正在使用新的 Google reCaptcha API 作为我的 WordPress 实例页面内的联系表单 但是API returns a 500 Internal Server Error message当使用谷歌提供的脚本时 所以 我
  • 为什么在生产中会出现“未定义方法‘分页’”错误?

    在生产服务器上使用 will paginate 时出现此错误 I 2013 10 24T20 17 40 386696 18564 INFO Started GET meals for 190 273 432 55 at 2013 10 2
  • Chrome Cookie API 不允许我使用返回值

    我正在制作一个 chrome 扩展 它在用户登录时设置 cookie 当我尝试使用chrome cookies get 方法回调可以记录结果 但我无法将其传递出回调 function getCookie cookieName var ret
  • 从 NET Core Web 应用程序调用 Microsoft Graph SDK 时出现 MsalUiRequiredException

    我们有一个 NET Core 3 1 Web 应用程序 其中用户在 Azure AD 中使用以下命令进行身份验证微软身份网络包裹 我们正在代表登录用户调用 Microsoft Graph SDK 如下所述here 登录应用程序后 一切正常
  • R 闪亮保存到服务器

    我正在构建一个 R Shiny 应用程序 充当我的团队构建的模拟模型的 GUI 用户定义参数 单击运行 模型会生成一堆图表和表格作为输出 我的问题是 每次用户打开应用程序时 他们都必须再次输入参数 我希望他们能够保存参数并在返回应用程序时再
  • JTextArea.append 的线程安全

    java doc说append方法是线程安全的 但是 我记得当我尝试从不同线程 几个月前 使用附加到文本区域时 我得到了混乱的文本 其中线程 1 将附加一些字符 而线程 2 将附加一些其他字符 因此 我得到的不是 jtextarea 中的
  • Ruby x,y = gets.split.map &:to_i

    我对这行 ruby 代码感到困惑 为什么赋值给 x y 而不是单个变量 x y gets split map to i 这将数组中的第一个条目分配给x 第二个条目y与分配给单个变量相反 在这种情况下 数组将分配给该变量 将多个变量放在赋值的
  • VS安装项目:在不同目录中安装文件

    我有 Visual Studio 安装项目 我想将我的文件之一安装到驱动器 C 上的某个目录 我该怎么做 一个例子 我正在将我的应用程序安装在 C MyApp 中 以及一个文件 settings ini 到 C Settings MyApp
  • 分配给 Setparent(..) 后 Showmodal 出现问题

    我创建了两个应用程序 MainApps 和 SubApps SubApps 有一个模式类型对话框 例如登录 注销表单等 并且工作正常 将其附加到 MainApps 后 模态对话框显示为正常的框形式 它的行为类似于 DIALOG SHOW 而