Delphi IdHTTP1下载文件防止假死


本文整理自网络,侵删。

 在Form1中添加控件:
两个Indy控件:IdAntiFreeze1,IdHTTP1;
一个按钮 :Button1;
一个进度条 :ProgressBar1 显示下载速度

procedure TForm1.Button1Click(Sender: TObject);
var
MyStream:TMemoryStream;
begin
IdAntiFreeze1.OnlyWhenIdle:=False;//设置使程序有反应.
MyStream:=TMemoryStream.Create;
try
//http://www.delphitop.com/
IdHTTP1.Get('http://www.appcontrols.com/demos/exe/HTTPDemo.exe',MyStream);
except
Showmessage('没有下载成功!');
MyStream.Free;
Exit;
end;
MyStream.SaveToFile(ExtractFilePath(paramstr(0))+'HTTPDemo.zip');
MyStream.Free;
Showmessage('OK');
end;

procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
//开始下载前,将ProgressBar1的最大值设置为需要接收的数据大小.
ProgressBar1.Max:=AWorkCountMax;
ProgressBar1.Min:=0;
ProgressBar1.Position:=0;
end;

procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
//接收数据的时候,进度将在ProgressBar1显示出来.
ProgressBar1.Position:=ProgressBar1.Position+AWorkCount;
end;

相关阅读 >>

Delphi application.processmessages的作用

Delphi 18位身份证号码的校验

Delphi webservices传文件

Delphi消息发送字符串

Delphi 传输文件例子的核心代码

Delphi xe 关闭android应用

Delphi dbgrid查询内容的导出为txt函数

Delphi idftp ditdirectory未定义

Delphi rest api post sample

Delphi 文件/流的加密解密单元 unit_compress.pas

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...