delphi中application.processmessages的作用

procedure TForm1.Button2Click(Sender: TObject);

var

I, J, X, Y: Word;

begin

I := 0;

J := 0;

while I < 64000 do

begin

Randomize;

while J < 64000 do

begin

Y := Random(J);

Inc(J);

Application.ProcessMessages;

end;

X := Random(I);

Inc(I);

end;

Canvas.TextOut(10, 10, 'The Button2Click handler is finished');

end;

代码中红色的一行的作用:

如果你运行一个非常耗时的循环,那么在这个循环结束前,你的程序可能不会响应任何事件,你按按钮没有反应,程序设置无法绘制窗体,看上去就如同死了一样,这有时不是很方便,例如于终止循环的机会都没有了。这时你就可以在循环中加上这么一句,每次程序运行到这句时,程序就会让系统响应一下消息,从而使你有机会按按钮,窗体有机会绘制。