我使用Delphi 2010和智能互联网套件编写了一些工具,用于登录网站并上传文件。
一切正常,现在我想添加上传速度,但我不知道怎么做。
我整天都在谷歌上搜索,但没有带来任何积极的结果。
我正在尝试这一部分:
procedure TForm2.clHttp1SendProgress(Sender: TObject; ABytesProceed,
ATotalBytes: Int64);
begin
end;
有人可以解释一下如何做到这一点或只是给一些小费吗?
答案 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;