Delphi XE + Indy 10.5.7,限速不是很准确,不过还凑合吧
分别拖一个 idhttp 和 IdInterceptThrottler 组件到窗体,
设置 idhttp 的 IdIntercept 为 IdInterceptThrottler1,然后设置 IdInterceptThrottler1 的属性:
var
fs: TFileStream;
i: Integer;
begin
i := StrToIntDef(Edit3.Text,40);// 40 代表限制的速度
IdInterceptThrottler1.BitsPerSec := i *1024*10; // 赋给 IdInterceptThrottler1 的属性
fs := TFileStream.Create(Edit2.Text, fmCreate or fmShareDenyNone);
try
IdHTTP1.Get(Edit1.Text, fs);// 下载
finally
if Assigned(fs)then
fs.Free;
end;
Application.ProcessMessages;
end;