Delphi非阻塞ShowModal

时间:2013-02-25 02:06:12

标签: delphi delphi-7 vcl tform

我想知道是否有一种方法来显示TForm而不等待它(有点像TForm.Show)。但我想要的是阻止所有其他形式(就像在ShowModal中一样)

示例:

我有Form1和Form2。 Form1有一个按钮,应打开Form2但Form1被阻止,但单击该按钮仍然继续Form2打开后的代码。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.ShowModal; // ===> Something like that but the Code should continue, yet Form1 and all other forms are blocked (disabled)
  MessageBox (0, 'Code continues', '', 0);
end;

希望你知道我的意思。

1 个答案:

答案 0 :(得分:9)

您可以调用DisableTaskwindows,禁止您的Window被禁用,稍后启用Windows以再次启用其他表单。

  Form3.Show;
  FP:=DisableTaskwindows(Form3.Handle);
  //Some Code
  EnableTaskwindows(FP);