使用Delphi获得文件上传速度

时间:2014-03-15 23:57:30

标签: delphi file-upload

我使用Delphi 2010和智能互联网套件编写了一些工具,用于登录网站并上传文件。

一切正常,现在我想添加上传速度,但我不知道怎么做。

我整天都在谷歌上搜索,但没有带来任何积极的结果。

我正在尝试这一部分:

procedure TForm2.clHttp1SendProgress(Sender: TObject; ABytesProceed,
  ATotalBytes: Int64);
begin

end;

有人可以解释一下如何做到这一点或只是给一些小费吗?

1 个答案:

答案 0 :(得分:3)

"速度"定义为每个时间跨度的数量。要计算你必须知道什么数量和什么时间跨度。

只需存储当前金额和当前时间戳,然后下次就可以计算速度

(current_amount - last_amount)/(current_timestamp - last_timestamp)
TForm2 = ...
...
private
  FBytesProceed : Int64;
  FTimeStamp : TDateTime;
  FSpeed : double;
end;

procedure TForm2.clHttp1SendProgress(Sender: TObject; ABytesProceed,
  ATotalBytes: Int64);
var
  LTimeStamp : TDateTime;
begin
  LTimeStamp := Now;
  if FBytesProceed < ABytesProceed then
  begin
    // calculating bytes per second
    FSpeed := ( ABytesProceed - FBytesProceed ) {bytes}
            / ( ( LTimeStamp - FTimeStamp ) {days}
              * 24 {hours}
              * 60 {minutes}
              * 60 {seconds} );
  end;
  FBytesProceed := ABytesProceed;
  FTimeStamp := LTimeStamp;
end;