让你的程序处理windows消息的
比如你做个循环,
var
  i,j,k: integer;
begin
  k := 0;
  for i := 0 to 20000 do
    for j := 0 to 50 do
    begin
      Inc( k ); 
      //尝试注释掉后面这句,看有什么不同
      Application.ProcessMessage;
    end;
  ShowMessage( IntToStr( k ) );
end;

解决方案 »

  1.   

    暂停程序,让 windows 继续处理其它的消息。示例同上。
      

  2.   

    To  Musicwind(风里来雨里去) 没什么太大的不同吧,只是处理速度快了一点。
      

  3.   

    这是让你的程序在执行到这里时接受一下Windows  的消息并进行处理,若没有新的消息,它就啥也不干.最简单的例子就是:在一个无限循环执行的程序中,若没Application.ProcessMessage 你就甭想停住这个程序.若有了,你就可以用诸如form1.close 方法来关闭程序.