DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!

Fórum DevMedia


Autor
Mensagem
aureliovs
 


País:
Estado:
Cidade:
Mensagens: 11
 Postado em: 15/3/2007 12:00:00 AM
 
Dae galera,
Tive problemas para fazer funcionar o evento OnWork do componente idFTP da Indy. Estou utilizando a Indy versão 9, pq odiei a versão 10. (Mesmo assim, este problema acontece nas duas versões.)

O que acontece é que ao fazer o upload de um arquivo o evento OnWork simplesmente não funciona, e desse jeito fica impossível mostrar o progresso
da transação.

Bem, a solução que encontrei foi esta atualização para a biblioteca Indy, disponivel neste obscuro endereço que encontrei após muita procura e tempo perdido. :shock:

http://indy.fulgan.com/ZIP/indy9.zip

Está é uma versão Developer Snapshot da biblioteca, portanto, use por conta e risco, para mim funcionou muito bem.

Abaixo, segue uma sugestão para implementação do progresso dos
downloads/uploads.


Código:
unit blablabla;
...

var
LastTime: Cardinal;
BytesToTransfer: Integer;
AverageSpeed: Double;

implementation
...

procedure TfrmPrincipal.FTPWorkBegin(ASender: TObject;
AWorkMode: TWorkMode; AWorkCountMax: Integer);
begin
LastTime := GetTickCount;
BytesToTransfer := AWorkCountMax;
AverageSpeed := 0;
end;

procedure TfrmPrincipal.FTPWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Integer);
var
Sec: Word;
DelayTime: Double;
begin
DelayTime := (GetTickCount - LastTime) / 1000;

if DelayTime > 0 then
begin
AverageSpeed := (AWorkCount / 1024) / DelayTime;
lbSpeed.Caption := FormatFloat(´0.00 KB/s´, AverageSpeed);
end;

if AverageSpeed > 0 then
begin
Sec := Trunc(((BytesToTransfer - AWorkCount) / 1024) / AverageSpeed);
lbTime.Caption := StringReplace(Format(´¬2d:¬2d:¬2d´, [Sec div 3600, (Sec div 60) mod 60, Sec mod 60]),´ ´,´0´,[rfReplaceAll]);
end;

Progresso.Position := (AWorkCount * 100) div BytesToTransfer;
end;

end.




cps.art
 


País: Brasil
Estado: SP
Cidade: Promissão
Mensagens: 22
 Postado em: 14/6/2012 10:45:06 PM
 
BytesToTransfer não consegue carregar.
Comigo não funcionou.

web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03