enviar e-mail com indy mostrando progresso numa progressbar

Delphi

05/10/2006

gostaria de saber como mostrar o progresso do envio de um e-mail com indy numa progressbar.


Vitor Rubio

Vitor Rubio

Curtidas 0

Respostas

Lipe_sp

Lipe_sp

05/10/2006

[quote:daa02e053b=´vitor^_^´]gostaria de saber como mostrar o progresso do envio de um e-mail com indy numa progressbar.[/quote:daa02e053b]

Vitor.
Como não sei a aplicação, não sei se lhe vai ser util, mas... não seria o caso de voce deixar a progressbar em looping(como algumas instalações fazem) até terminar o envio?

Não sei sobre as paletas Indy, mas na Fastnet, era impossivel prever quando ia terminar, ou quanto faltava pra terminar o envio do e-mail.


Ps.: Entra no msn.... preciso falar com vc

Boa sorte ;)


GOSTEI 0
Lipe_sp

Lipe_sp

05/10/2006

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    if ProgressBar1.Position <> 100 then
        ProgressBar1.Position := 0;
    ProgressBar1.Position := ProgressBar1.Position + 1;

end;



GOSTEI 0
Vitor Rubio

Vitor Rubio

05/10/2006

não era bem isso que eu queria. Queria fazer igual agente faz com ftp:

com o idftp, ao enviar um arquivo, no evento workbegin, dá pra pegar o tamanho total da transferencia pelo parametro aworkcountmax, e colocar aworkcountmax no max da progressbar. Aí no evento onwork vc coloca progressbar1.position := aworkcount e a barra acompanha perfeitamente o progresso real.

mas so funciona com o idftp, o idsmtp não funciona. aworkcountmax sempre retorna 0. embora o workcount seja diferente de zero e cumulativo.

O que eu fiz, de gambiarra por enquanto, foi somar o tamanho dos arquivos anexos e colocar esse tamanho total no max da progressbar, a aí o progresso funciona. Mas com ftp isso ocorre automaticamente. Alem disso, se eu não tiver anexos não vai funcionar o progresso.


GOSTEI 0
Vitor Rubio

Vitor Rubio

05/10/2006

acho que na verdade seu código seria assim:

procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
    if ProgressBar1.Position > 100 then 
        ProgressBar1.Position := 0; 
    ProgressBar1.Position := ProgressBar1.Position + 1; 

end;


pra voltar pra 0 depois que chegar a 100, se não ela não progride nunca ....


to entrando no msn.


GOSTEI 0
Lipe_sp

Lipe_sp

05/10/2006

Realmente...
escrevi errado... :oops:
era =, e não <>.
:lol:


GOSTEI 0
POSTAR