首页 > 代码库 > Delphi ICS 多线程下载

Delphi ICS 多线程下载

 一、FMultiPartHTTP 的事件:

  下载完成事件

      HTTPRequestDone(Sender: TObject; ErrorCode: Integer; const Reason: string);

    在这里释放下载的文件流

      FMultiPartHTTP.FileStream.Free;

     FMultiPartHTTP.FileStream := nil;

     

二、下载显示状态信息事件

   HTTPShowStats(Sender: TObject);

   在这里显示当前下载状态   

  str :=  ‘已下载(MB):‘ + Format(‘%2f‘,[FMultiPartHTTP.TotalCount / 1024 / 1024]) +

  ‘ 完成百分比:‘ + Format(‘%3.0f‘, [FMultiPartHTTP.PercentDone])+‘%‘ +

  ‘ 下载速度(KB/秒):‘ + Format(‘%6.2f‘, [FMultiPartHTTP.CurSpeed]) +

  ‘ 耗时:‘ + FormatDateTime(‘hh:nn:ss‘, FMultiPartHTTP.ElapsedTime);

三、,ICS进度条有关的事件

下面2个事件和进度条有关,ICS自带了个下载进度条

HTTPProgressAddSegment(Sender: TObject; StartOffset, ASpan, InitPos: Int64);

ASpan分段大小,InitPos分段开始大小, StartOffset,分段开始大小

HTTPProgressSetPosition(Sender: TObject;Index: Integer; Position: Int64);

Index第几个分段 Position 分段已下载的大小

四、用法示例:

    FMultiPartHTTP.URL:=下载文件地址;

    FMultiPartHTTP.PartCount:=分块个数;

    FMultiPartHTTP.FileStream:=TFileStream.Create(‘下载本地文件名‘,fmCreate);

    FMultiPartHTTP.Start;