1. Technology

Download a file from the Internet with progress indicator

By

If you need to save the contents of a specified URL to a file - and be able to track the download progress, use the TDownLoadURL Delphi action
While TDownLoadURL is writing to the specified file, it periodically generates an OnDownloadProgress event, so that you can provide users with feedback about the process.

Here's an example - note that you must include the unit ExtActns in the uses clause.

~~~~~~~~~~~~~~~~~~~~~~~~~
uses ExtActns, ...

type
   TfrMain = class(TForm)
   ...
   private
     procedure URL_OnDownloadProgress
        (Sender: TDownLoadURL;
         Progress, ProgressMax: Cardinal;
         StatusCode: TURLDownloadStatus;
         StatusText: String; var Cancel: Boolean) ;
   ...

implementation
...

procedure TfrMain.URL_OnDownloadProgress;
begin
   ProgressBar1.Max:= ProgressMax;
   ProgressBar1.Position:= Progress;
end;

function DoDownload;
begin
   with TDownloadURL.Create(self) do
   try
     URL:='http://0.tqn.com/6/g/delphi/b/index.xml';
     FileName := 'c:\ADPHealines.xml';
     OnDownloadProgress := URL_OnDownloadProgress;

     ExecuteTarget(nil) ;
   finally
     Free;
   end;
end;

{
Note:
URL property points to Internet
FileName is the local file
}
~~~~~~~~~~~~~~~~~~~~~~~~~

Delphi tips navigator:
» Positioning the caret in a line in a Memo or RichEdit
« How to determine the output of a console application

©2014 About.com. All rights reserved.