Email com Progresso !!!!
Pessoal estou usndo os componentes da paleta indy para enviar e-mail so que dependendo do tamanho do anexo a aplicaçao tipo trava so q si espera mto tempo ela termina de enviar ai comoquei um IdAntiFreeze melhorou mto poko alguem sabe como resolver isso ?????
e como colocar progress no envio da mensagen ??????
vlw !!!!!
e como colocar progress no envio da mensagen ??????
vlw !!!!!
Guilherme
Curtidas 0
Respostas
Saint
29/07/2005
opa..
cara, vc pode pegar o tamanho do idmessage como arquivo e usar o onwork como referencia para a qtd enviada..
abraco
cara, vc pode pegar o tamanho do idmessage como arquivo e usar o onwork como referencia para a qtd enviada..
abraco
GOSTEI 0
Guilherme
29/07/2005
comi ki faço isso nunca fiz isso !!!!!!
GOSTEI 0
Guilherme
29/07/2005
nao to conseguindo pegar o tamanho do idmessage como ki pego ???
GOSTEI 0
Christian_adriano
29/07/2005
function TamanhoArquivo(Arquivo: string): Integer; begin try Result := 0; with TFileStream.Create(Arquivo, fmOpenRead or fmShareExclusive) do begin try Result := Size; finally Free; end; end; except end; end; // *********** Anexando Arquivos ****************** // tam := 0; ProgressBar1.Position := 0; if (ListBox1.Items.Count > 0) then for i := 0 to ListBox1.Count - 1 do begin TIdAttachment.Create(idMsgSend.MessageParts, ListBox1.Items.Strings[i]); tam := tam + TamanhoArquivo(ListBox1.Items.Strings[i]); end; ProgressBar1.Max := tam;
E no Evento OnWork do TidSMTP vc coloca esse código:
ProgressBar1.Position := AWorkCount;
Espero que ajude.
[]´s.
Christian.
GOSTEI 0
Guilherme
29/07/2005
cara valew deu certo so ki quando nao tem anexo o progress nem mexe como ki faz para colocar o progress tbm no texto ?
GOSTEI 0
Christian_adriano
29/07/2005
Já tentou colocar no Evento OnWork do TidSMTP vc coloca esse código:
Espero q ajude...
[]´s.
Christian.
ProgressBar1.StepIt;
Espero q ajude...
[]´s.
Christian.
GOSTEI 0
Guilherme
29/07/2005
cara eu coloquei como vc falou no 1ª post intao so me diz uma coisa o q devo colocar para funcionar com anexo ou sem anexo ?????
GOSTEI 0
Guilherme
29/07/2005
Já tentou colocar no Evento OnWork do TidSMTP vc coloca esse código:
Código:
ProgressBar1.StepIt;
Espero q ajude...
[]´s.
Christian.
Nao adiantou nada !!!
GOSTEI 0
Powerlog Tecnologia
29/07/2005
Só pra complementar, pego o tamanho da mensagem desse jeito:
Se a mensagem for maior que ´X´ mega, eu nem baixo, já apago de vez ... (a pedido do cliente, claro)
const cBytesPorMb = 1024 * 1024; var NumMsg, TotMsg: Integer; xTamMsg: extended; begin if not idPOP.Connected then idPOP.Connect(xTimeOut); TotMsg := idPOP.CheckMessages; pbEmail.MaxValue := TotMsg; for NumMsg := 1 to TotMsg do begin xTamMsg := idPOP.RetrieveMsgSize(NumMsg) / cBytesPorMb; (... etc, etc, etc ... ) end; end;
Se a mensagem for maior que ´X´ mega, eu nem baixo, já apago de vez ... (a pedido do cliente, claro)
GOSTEI 0