[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

HTTP Get with progress meter (with Indy?)

Posted on 2009-05-06
3
Medium Priority
?
824 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 2000 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

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

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

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
Suggested Courses

872 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