Forum > Networking and Web Programming

Is it possible to download file with indy using progressbar ?

(1/1)

seba22:
Welcome,

Is it possible to download file using indy (GET) with progressbar ?

On my website i use content-length header what have full file size.

I think i can access to it  using indy, but how create progressbar ?

Where can i find how many data are downloaded ?


Regards

seba22:
I wrote that.

It was very easy.

I didn't see that onworkbegin send filesize.


This is code, i tested under linux.

--- Code: ---unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ComCtrls, StdCtrls, IdHTTP, IdComponent, IdAntiFreeze;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    IdAntiFreeze1: TIdAntiFreeze;
    IdHTTP1: TIdHTTP;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
    procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
 //label1.caption:='abbbaa';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
pk:string;
begin
  pk:=idhttp1.Get('http://download.thinkbroadband.com/20MB.zip');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  label1.caption:=inttostr(aworkcount);
  progressbar1.position:=aworkcount;
end;

procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  progressbar1.max:=AWorkCountMax;
end;



initialization
  {$I unit1.lrs}

end.

--- End code ---

xenblaise:
nice post :D

Navigation

[0] Message Index

Go to full version