【问题标题】:How to close a modal form from which I call a modal form如何关闭我称之为模态表单的模态表单
【发布时间】:2019-06-25 02:16:32
【问题描述】:

主窗体打开一个模态窗体 B。
表单 B 打开一个模态表单 C。

如何在表单 C 打开之前关闭表单 B?

【问题讨论】:

  • 当模态窗体C即将打开时,用一个选项关闭B,这样主窗体就可以打开模态窗体C了。
  • 要扩展 LU RD 所说的内容,不要从表单 B 打开表单 C,从表单 A 打开它。当您要打开表单 C 时,关闭表单 B 并使用告诉表单的模态值A 打开表格 C。

标签: delphi vcl


【解决方案1】:

诀窍是推迟对 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多