zoukankan      html  css  js  c++  java
  • 用idhttp打开网页或下载文件时如何显示进度

    在它的workbegin work事件中写代码

    procedure TfrmDownLoad.IdHTTP1WorkBegin(Sender: TObject;
       AWorkMode: TWorkMode; const AWorkCountMax: Integer);
    begin
       ProgressBar1.Max := AWorkCountMax ;
    end;

    procedure TfrmDownLoad.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
       const AWorkCount: Integer);
    begin
       ProgressBar1.Position := AWorkCount ;
    end;

    显示下载速度
    idhttp有一个方法就是OnWork,有一个参数AWorkCount,就是当前下载的大小(K)
    用一个全局变量记录时间
    在onWorkBegin的时候取一下时间
    然后在OnWorK里再取一下时间,做差得到下载用的时间,然后用下载的大小除以时间就是下载的速度
    全局变量:lastc,lastt

    procedure
     TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
    begin
       nsize.Caption := '已下载:'+floattostr(ByteToStr(AWorkCount))+'MB';
       speeds.Caption := '下载速度:'+floattostr((AWorkCount-lastc)*3600*24/(lastt-now)))+'kb/s';
       ProgressBar1.Position:=AWorkCount;
       lastc:=AWorkCount; //用ProgressBar1.Position做lastc也可以
       lastt:=now;
    end;

  • 相关阅读:
    AOP面向方面编程
    Struts2基于注解的Action配置
    地图api汇总
    Visual C++ 嵌入汇编代码
    C# ASP.net中用到的JWT身份验证
    Asp.Net Forms 身份验证
    .Net 面试常见问题
    Web Api 自动生成帮助文档
    .Net常见的一些区别
    创建Silverlight 5浏览器内受信应用
  • 原文地址:https://www.cnblogs.com/wissly/p/3446723.html
Copyright © 2011-2022 走看看