首页  编辑  

关于模拟ShowModal的一个问题

Tags: /超级猛料/VCL/Form,窗体/模态窗体/   Date Created:

有的时候後,我们需要一个Modal窗体,但是同时需要程序继续运行进行其他的控制,那么该这么办呢?

利用DisableTaskWindows和 EnableTaskWindows 可以达到这一效果。

  下面是演示实现程序:

procedure TForm1.ShowProgressDlg;

var

WindowList: Pointer;

begin

{除了Form2外使所有窗口无效}

WindowList := DisableTaskWindows(Form2.Handle);

try

Form2.Show;

{循环执行任务}

Form2.ProgressBar1.Position :=

Form2.ProgressBar1.Position + 1;

{循环结束}

finally

{重新使所有窗口有效}

EnableTaskWindows(WindowList);

Form2.Close;

end;

end;