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;

  • 相关阅读:
    项目乱码导致原因
    springmvc配置文件
    IntelliJ IDEA启动Tomcat后,却无法访问Tomcat主页 等一系列问题
    java错题
    java 从键盘录入的三种方法
    java内部类 和外部类的区别
    多线程
    24中模式详解
    java的强制类型转换
    正则表达式
  • 原文地址:https://www.cnblogs.com/wissly/p/3446723.html
Copyright © 2011-2022 走看看