Application.ProcessMessages用法

参考:http://cqujsjcyj.iteye.com/blog/380926

 

  我想你可能还有点模糊。举个例子容易明白:假如你的窗体上有两个按钮,一个“计算”,一个“停止”,

  如果你的计算是密集运算或复杂处理,当你点了“计算”钮后,你将发现“停止”按钮不会响应你的点击了,也就是说,你无法随时使计算过程停下来。而倘若你在计算的代码中加入Application.ProcessMessages,则你的程序就有机会响应其它的事件了。

  在大量的循环运算,又不想使用多线程时,为了计算机在运算时能响应用户的操作,又不破坏指令执行。所起作用类似于VB中DoEvent方法. 

procedure Delay(MSecs: Longint);

//延时函数,MSecs单位为毫秒(千分之1秒)

var

  FirstTickCount, Now: Longint;

begin

  FirstTickCount := GetTickCount();

repeat

  Application.ProcessMessages;

  Now := GetTickCount();

until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);

end;

  

你可能感兴趣的:(application)