有大数循环的情况,通常会出现假死,在循环前加一句:Application.ProcessMessages; 就可以了。。
比如下面的例子:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
for i:=0 to 100000 do
begin
Edit1.Text := IntToStr(i);
end;
end;
这样程序执行上面的代码时会出现假死,如果改成下面的就不会了。
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
for i:=0 to 100000 do
begin
Application.ProcessMessages;
Edit1.Text := IntToStr(i);
end;
end;