主窗体打开模式窗体B。 表格B打开模式表格C。 如何在表单C打开之前关闭表单B?
答案 0 :(得分:3)
技巧是将对FormC的 ShowModal 的调用推迟到FormB关闭之前。可以将以下代码放在ButtonClick事件处理程序中。它利用了最新的Delphi版本中可用的 ForceQueue 方法。赋予 ForceQueue 的 Anonymous Method 将在稍后的主线程中执行。这样可以使模态FormB在显示FormC之前完成。
TThread.ForceQueue(nil,
procedure
var
frm: TFormC;
begin
frm := TFormC.Create(Application);
try
frm.ShowModal;
finally
frm.Free;
end;
end
);
ModalResult := mrOK;