TAnimate - Trava ao executar uma operação

18/11/2005

0

Salve!!!

Tenho uma rotina para envio de email usando o indy + delphi7, O envio de email esta funcionando normal o meu problema é que quando mando enviar o email .... a animação do componente TAnimate para .... ela simplesmente trava, fica parada até que o email seja enviado .... depois ela volta a funcionar. Já tentei fazer assim:

Application.ProcessMessages; smtp.Connect; try smtp.Send( mensagem ); FreeAndNil( newText ); FreeAndNil( newAttach ); smtp.Disconnect; except on e : Exception do MessageDlg( ´Erro ao tentar enviar o email. :´ + e.Message, mtInformation, [mbOK], 0 ); end;


Mas nao resolveu, continua travando o TAnimate.

alguem sabe o que posso fazer para resolver???

valewsss


Mmoreira

Mmoreira

Responder

Posts

18/11/2005

Massuda

Se o ´smtp´ em seu código for um TIdSMTP do Indy, coloque também no form um componente TIdAntiFreeze (normalmente na aba Indy Misc).


Responder

18/11/2005

Michael

Olá!

[b:ebf9204839]ProcessMessages [/b:ebf9204839]não funciona neste caso pq o lag está no método [b:ebf9204839]Send[/b:ebf9204839]. A solução seria enviar o email de dentro de uma thread.

[]´s


Responder

18/11/2005

Mmoreira

Massuda,

Eu coloquei o TIdAntiFreeze e nao adiantou muito, a animação continua travando ....



Michel,

Bom eu nao saco nada de thread, vou dar uma pesquisada no forum e ver o que consigo ...


valews


Responder

18/11/2005

Massuda

Eu coloquei o TIdAntiFreeze e nao adiantou muito...
Você tem algum processamento adicional sendo feito durante o envio do email (por exemplo, barra de progresso)?


Responder

18/11/2005

Martins

Olá! [b:0314e39111]ProcessMessages [/b:0314e39111]não funciona neste caso pq o lag está no método [b:0314e39111]Send[/b:0314e39111]. A solução seria enviar o email de dentro de uma thread. []´s


Concordo com vc garotinho...

  TMailThread = class( TThread )
  protected
     procedure Execute; override;
  end;

.....

procedure TMailThread.Execute;
begin

{Seus códigos.... }
.....

end;


Depois vc faz a chamada a sua Thread.

Michael passa no fórum do ArapuKa.

Um Abraço


Responder

21/11/2005

Mmoreira

Massuda

Eu nao tenho nenhum outro processo junto com:

try
smtp.Send( mensagem );


Um pouco antes de enviar o email eu abro um ClientDataSet com poucos registros.

Martins,
Estou dando uma estudada sobre thread ...

Tenho que resolver isso o quanto antes.

valews


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar