28/03/2010


Exemplo prático de download de arquivos utilizando o componente idHTTP.


Inicie um novo projeto e coloque um Button, um Edit, um Progressbar, um Label e um idHTTP (paleta Indy Clients);


No evento onClick do Button coloque o seguinte código:
var
 arquivo,caminho : 
string;
 MyFile: TFileStream;
begin
// definir o link
 caminho:= 
'http://www.arquivojuridico.com/';  // aqui defini um caminho pardão pro download , pode ser trocado por um edit, etc
 arquivo:= edit1.
text// nome do arquivo para download
 MyFile := TFileStream.
Create('C:'+arquivo, fmCreate)// local no hd e nome do arquivo com a extensão, onde vai salvar.
  
try
    IdHTTP1.
Get('http://www.arquivojuridico.com/'+arquivo, MyFile)// fazendo o download do arquivo
  
finally
    MyFile.
Free;end;
 No evento onWork do idHTTP1:
ProgressBar1.Position := AWorkCount;
No evento onWorkBegin do idHTTP1:
ProgressBar1.Position := 0;
ProgressBar1.
Max := AWorkCountMax;
Label1.
caption := "Download em andamente, espere!";
No evento onWorkEnd do idHTTP1:
ProgressBar1.Position := ProgressBar1.Max;
Label1.
caption := "Download Concluído!";
Agora aperte F9 e teste o código.

Lembrando que este é um exemplo bastante simples e que durante o download a aplicação fica "travada". Em uma aplicação este código deve estar implementado em uma thread, dessa forma evitasse que o usuário pense que o aplicativo parou de responder e feche o mesmo. 

[ Fonte ]

1 comentários:

Walter disse...

Não funciona. O download fica incompleto!

Postar um comentário