在它的workbegin work事件中写代码

procedure TfrmDownLoad.IdHTTP1WorkBegin(Sender: TObject;
   AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
   ProgressBar1.Max := AWorkCountMax ;
end;

 

procedure TfrmDownLoad.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
   const AWorkCount: Integer);
begin
   ProgressBar1.Position := AWorkCount ;
end;

显示下载速度
idhttp有一个方法就是OnWork,有一个参数AWorkCount,就是当前下载的大小(K)
用一个全局变量记录时间
在onWorkBegin的时候取一下时间
然后在OnWorK里再取一下时间,做差得到下载用的时间,然后用下载的大小除以时间就是下载的速度
全局变量:lastc,lastt

procedure
 TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
   nsize.Caption := '已下载:'+floattostr(ByteToStr(AWorkCount))+'MB';
   speeds.Caption := '下载速度:'+floattostr((AWorkCount-lastc)*3600*24/(lastt-now)))+'kb/s';
   ProgressBar1.Position:=AWorkCount;
   lastc:=AWorkCount; //用ProgressBar1.Position做lastc也可以
   lastt:=now;
end;

相关文章:

  • 2022-12-23
  • 2021-09-08
  • 2022-02-04
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-17
  • 2021-11-13
  • 2021-08-25
  • 2022-12-23
相关资源
相似解决方案