首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

进度条的数值在for循环执行完才显示?该如何处理

2012-04-23 
进度条的数值在for循环执行完才显示?procedure TForm1.Button1Click(Sender: TObject)vari:integerbegin

进度条的数值在for循环执行完才显示?
procedure TForm1.Button1Click(Sender: TObject);
var 
  i:integer;
begin
  ProgressBar1.Max:=1000;
  ProgressBar1.Position :=0;
  for i:=0 to 1000 do
  begin
  Application.ProcessMessages;
  ProgressBar1.Position :=ProgressBar1.Position +1;
  end;
  label1.caption:='已下载: '+ intTostr(i);//
end;


问题是:label1.caption一下就显示为1000,我想让其一点一点增长,不知怎么写?谢谢!!!

[解决办法]
这是因为你的for循环中没有什么耗时间的操作
所以,进度条长的太快了,你看起来就象是一下就长满了

label1由于在for循环外面,所以循环完成后才会执行
label1.caption:='已下载: '+ intTostr(i);
这一句
这时,i已经=1000了,当然就一下就显示1000
如果想让它慢慢增加,应该把这句放到for循环中
[解决办法]
这是因为你循环中没有做什么更多的操作,很快就过去了,所以你看不见一步一步增长,你加一句:sleep(300);试试。
[解决办法]
循环内没有实际耗时的代码 执行得太快了
真要一点点显示 可以放个sleep()
[解决办法]
delay(300);或sleep(300);
[解决办法]
for i:=0 to 1000000 do
试试

热点排行