Solved

HTTP Get with progress meter (with Indy?)

Posted on 2009-05-06
3
807 Views
Last Modified: 2012-05-06
I'm looking for sample Delphi 7 code with Indy 9.0 that does an http get of a file, with a hook for an OnWork event (so I can have a progress meter.)

Does anyone know if this is possible with Indy. I'd prefer not to use another library if possible.
0
Comment
Question by:tfield98
3 Comments
 
LVL 18

Accepted Solution

by:
Johnjces earned 500 total points
ID: 24320359
Try the following...

Not certain where I got the code.

John


drop a TIdHTTP, a TLabel a TIdAntiFreeze and a TProgressBar
 

procedure TForm1.IdHttp1WorkBegin(Sender:TObject; AWorkMode:TWorkMode;const AWorkCountMax:Integer);

begin

  if AWorkMode = wmRead then

  begin

    ProgressBar1.Max := AWorkCountMax ;

    ProgressBar1.Position := 0 ;

  end;

end;
 

procedure TForm1.IdHttp1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);

begin

  if AWorkMode = wmRead then

  begin

    ProgressBar1.Position := AWorkCount ;

    Label1.Caption := IntToStr(AWorkCount) + 'Bytes of :' + ProgressBar1.Max ;

  end;

end;
 

procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);

begin

  if AWorkMode = wmRead then

    Label1.Caption := 'Completed';

end;
 

to download,
 

var

  F: TFileStream;

begin

  F := TFileStream.Create('download.zip', fmCreate);

  try

    IdHTTP1.Get('http://somesite.com/downloads/download.zip', F);

  finally

    F.Free;

  end;

end;

Open in new window

0
 
LVL 26

Expert Comment

by:EddieShipman
ID: 24320457
Damn John, you beat me to it...
If you are using this for normal web page gets, you aren't going to see much progress as it will flash too fast.
0
 

Author Closing Comment

by:tfield98
ID: 31578764
The code worked perfectly (with an added IntToStr that was needed. Thanks A LOT, John!  (Yes, Eddie, I'm using it to download a large file, so it won't flash. But thanks for the heads up.)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now