10 Dezembro 2018 Seg

2 visitantes e 0 Usuários online

  Indique Download Forums Links Polita de Privacidade
PC-SOS :: Programação :: Delphi :: Criar um programa para fazer download com barra de progresso
PC-SOS
Notícias
Anúncios
Estatística
FAQ
Usuários
Usuários Online
Conteúdo
1-Política de Privacidade
Artigos
Celular
Flash
Linux
Discos Rígidos
Hardware
Internet
Modem
MSOffice
MSOffice - Excel
Multimedia
Photoshop
Programação
Rede
Segurança
Sistema Operacional
Software
Software p/ PenDrive
Termos & Siglas
WEB
Windows
Xoops
Área de Usuário

Usuário:
Senha:
Lembrar!
Esqueci minha senha
Registrar

Pesquisa Avançada

Patrocinadores

 


Teste de Velocidade

Desenvolvido por

 

 

 

2.01.2009
Como configurar o Windows para aceitar 8GB de RAM
3.12.2008
Quando Pen Drive USB Não Aparece No Windows
15.02.2008
BBS, sistema que foi o antecessor da internet
26.11.2007
Firefox 3.0
5.10.2007
Hitachi trabalha em Blu-Ray de 100GB e 200GB
24.09.2007
Novo supercomputador entra em operação no Brasil
24.09.2007
IBM oferece software gratuito de edição de texto
19.09.2007
Processador com 80 NÚCLEOS
19.09.2007
IBM terá suíte de escritório gratuita
17.09.2007
Clone do Office online, e grátis

Criar um programa para fazer download com barra de progresso
13.08.2007

A dica de hoje fala sobre como criar um programa para fazer download com barra de progresso, algo bastante procurando entre os colegas em nosso Fórum. Para exemplificar isso Eu criei um exemplo bem simples. Este exemplo foi desenvolvido com a ajuda técnica dos membros Michael, Bruno e Martins do fórum ClubeDelphi. Muito obrigado amigos.

Bem, o segredo todo está na dll UrlMon.dll. Fazendo uma chamada a função UrlDownloadToFile podemos “baixar” o arquivo informando sua origem e seu destino, veja:

 

UrlDownloadToFile(nil, PChar(‘http://www.seudominio.com.br/arquivo.zip’), PChar(‘C:Temparquivo.zip’), 0, nil);

 

Obs. Não esqueça de declarar a unit UrlMon na uses do seu projeto.

 

Para mostra o status de download, basta usar a interface IbindStatusCallback. Ela é responsável possui o evento onProgress que pode ser usado para atualizar uma ProgressBar. Para usa-la basta criar uma classe herdando seus métodos e propriedades e então criar a variável do tipo de sua classe para poder acessar as informações da Interface. Veja:

Declaração da Classe

type

 TMeuObjetoInterface = class(TInterfacedObject, IBindStatusCallback);

 public

 function OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult; stdcall;

 function GetPriority(out nPriority): HResult; stdcall;

 function OnLowResource(reserved: DWORD): HResult; stdcall;

 function OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG;

 szStatusText: LPCWSTR): HResult; stdcall;

 function OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult;

 stdcall;

 function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult;

 stdcall;

 function OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc:

 PFormatEtc; stgmed: PStgMedium): HResult; stdcall;

 function OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult;

 stdcall;

 end;

Declaração e uso da Variável

procedure TForm1.Button1Click(Sender: TObject);

var

 MeuEstatus: TMeuObjetoInterface;

begin

 MeuEstatus := TMeuObjetoInterface.Create;

 UrlDownloadToFile(nil, PChar(Edit1.Text), PChar(Edit2.Text), 0, MeuEstatus);

 Form1.lblProgresso.Caption := 'Download concluído';

end;

 

Obs. As units UrlMon e ShellApi, ActiveX no uses do form.


Fonte:

http://www.devmedia.com.br/articles/viewcomp.asp?comp=306

 

PC-SOS
Hits: 883
Delphi >>
 Ruim  Bom 
Comentário de Usuário: Nosso usuário podem revisar conteúdos

 

 

 

     

Número de visitas deste fev/2005 - Número de consultas ao site:

  © Copyright 2005 PC SOS. All Rights Reserved. contato@robweb.com.br