Как закрыть модальную форму из которой я называю модальную форму - PullRequest
0 голосов
/ 31 января 2019

Основная форма открывает модальную форму B. Форма B открывает модальную форму C. Как закрыть форму B перед открытием формы C?

1 Ответ

0 голосов
/ 31 января 2019

Хитрость заключается в том, чтобы отложить вызов ShowModal FormC до закрытия FormB.Следующий код может быть помещен в обработчик событий ButtonClick.Он использует метод ForceQueue , доступный в последних версиях Delphi. Анонимный метод , присвоенный 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;
...