Loading... <p>现在的下载软件一般都是多线程,多资源的下载模式,本文用ICS中的TMultipartHttpDownloader组件实现多线程,单资源的分块下载模式,鲁大师的升级就是这样的原理,可以参考.<br />先看组件的几个事件:<br />HTTPRequestDone(Sender: TObject; ErrorCode: Integer; const Reason: string);<br />下载完成事件,在这里可以释放下载的文件流<br /> FMultiPartHTTP.FileStream.Free;<br /> FMultiPartHTTP.FileStream := nil;<br />HTTPShowStats(Sender: TObject);<br />下载显示状态信息事件<br /> '已下载(MB):' + Format('%2f',[FMultiPartHTTP.TotalCount / 1024 / 1024]) +<br /> ' 完成:' + Format('%3.0f', [FMultiPartHTTP.PercentDone])+'%' +<br /> ' 速度(KB/秒):' + Format('%6.2f', [FMultiPartHTTP.CurSpeed]) +<br /> ' 耗时:' + FormatDateTime('hh:nn:ss', FMultiPartHTTP.ElapsedTime);<br />下面2个事件和进度条有关,ICS自带了个下载进度条<br />HTTPProgressAddSegment(Sender: TObject; StartOffset, ASpan, InitPos: Int64);<br />ASpan分段大小,InitPos分段开始大小, StartOffset,分段开始大小<br />HTTPProgressSetPosition(Sender: TObject;Index: Integer; Position: Int64);<br />Index第几个分段 Position 分段已下载的大小<br />下面是用法,非常简单:<br /> FMultiPartHTTP.URL:=下载文件地址;<br /> FMultiPartHTTP.PartCount:=分块个数;<br /> FMultiPartHTTP.FileStream:=TFileStream.Create('下载本地文件名',fmCreate);<br /> FMultiPartHTTP.Start;<br />注意:PartCount要大于1,这个组件支持断网断点下载,如果要控制下载的线程数量需要改ICS的源代码</p> 相关文章 (3种解决办法)获取微信公众号图片资源 Delphi7调用C#的webservice,在windows2008下不能运行?? Delphi ListView排序 Delphi中获取Unix时间戳及注意事项 恢复delphi7 文件关联 《小猪佩奇、粉红猪小妹、Peppa Pig》高清1080p 中英文原版下载 delphi Format格式化函数 如何将Bitmap位图与base64字符串相互转换 电影《狼图腾》中狼的50句经典格言 通过MAP文件尝试解决Access violation at address错误 Last modification:August 18th, 2010 at 09:10 pm © 允许规范转载 Support 如果觉得我的文章对你有用,请随意赞赏 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat