很简单,我的程序经常有长时间的处理任务。是用循环处理,就是说在循环内部可以响应一些外部事件。我遇到的问题是,一旦程序开启,表单就不能动弹,甚至出现“不能响应”,想中途退出或暂停都不行。用进度条显示进度,有时也只能看见一个进度条,其他的都在被其他窗口覆盖后面目全非。这个可以用线程来做,但我不想用线程,我只希望程序在执行循环时可以不时的响应一下事件,比如点击暂停的事件,表单刷新的事件。for i:=1 to 1000000 do
begin
  ///要做的工作,并记录进度,以便下次继续时从这个断点开始。  {响应表单事件的代码}end;我要问的是,如何编写这个代码,
我尝试写了if i mod 1000=0 then  ///总不能每次都执行吧
begin
  form1.repaint;
end;开始管用,时间长了就不行了。