delphi - 如何关闭我称之为模态表单的模态表单
问题描述
主窗体打开一个模态窗体 B。
窗体 B 打开一个模态窗体 C。
如何在表格 C 打开之前关闭表格 B?
解决方案
诀窍是推迟对 FormC 的ShowModal的调用,直到 FormB 关闭。以下代码可以放置在 ButtonClick 事件处理程序中。它利用了最新的 Delphi 版本中可用的ForceQueue方法。赋予ForceQueue的匿名方法稍后将在主线程中执行。这允许模态 FormB 在显示 FormC 之前完成。
TThread.ForceQueue(nil,
procedure
var
frm: TFormC;
begin
frm := TFormC.Create(Application);
try
frm.ShowModal;
finally
frm.Free;
end;
end
);
ModalResult := mrOK;
推荐阅读
- json - 如何从 KOTLIN 中 API 的实体响应输出类型内部的键中提取内部 JSONObject 的值?
- sql - 使用 VBA 中的 Replace 函数更改带有维度字段的 SQL 代码
- html - 使用 api 响应渲染材质标签不起作用
- asp.net-core - 来自数据库的 ASP.NET Core ConfigurationProvider
- c++ - 如何使用 spdlog
- swift - 如何将 macOS 操场的输出重定向到文件
- c# - 如何序列化集合以使用 WCF 发送它?
- python - Pyspark [WinError 2]
- python - 背包问题的一种变体,其中一些物品必须包含但不计入目标
- c - 在 C 中对 long double 应用“not”运算符