Contador de LOOP
Olá, estou desenvolvendo um enviador de email porem tenho uma duvida
Neste codigo queria que cada vez que fosse enviado o email o contador adiciona mais 1 email enviado a um label.
so que ele so adiciona um independente de quantos emails tenha a lista.
Try
SMTP.Connect;
if SMTP.Connected then
begin
SMTP.Send(Msg);
inc(contador,1);
SMTP.Disconnect;
end;Neste codigo queria que cada vez que fosse enviado o email o contador adiciona mais 1 email enviado a um label.
so que ele so adiciona um independente de quantos emails tenha a lista.
Marcelo Alves
Curtidas 0
Respostas
Francisco Macário
19/03/2013
Olá.
Esta parte de código não ajuda muito para a ajuda ou solução do seu problema.
Diretamente não esta "funcional" para o seu requisito.
Post o metodo completo, assim poderemos lhe ajudar.
At.
Esta parte de código não ajuda muito para a ajuda ou solução do seu problema.
Diretamente não esta "funcional" para o seu requisito.
Post o metodo completo, assim poderemos lhe ajudar.
At.
GOSTEI 0
Marcelo Alves
19/03/2013
procedure TForm1.btnEnviarClick(Sender: TObject);
Var
i: integer;
begin
if checkbox1.Checked = true then
SMTP.IOHandler := IO_OpenSSL;
SMTP.UseTLS := utUseImplicitTLS;
with SMTP do begin
Host := txt_host.Text;
Username := txt_user.Text;
Password := txt_pass.Text;
Port := strtoint(Edit4.Text);
AuthType := satDefault;
ConnectTimeout := 10000;
ReadTimeout := 10000;
end;
with IO_OpenSSL do begin
SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmClient;
end;
with Msg do begin
From.Name := txt_nome.Text;
From.Address := edt_name.Text;
end;
//Envio da mensagem
// Assunto da Msg
Msg.Subject := edtAssunto.Text;
// Destinatários
Msg.Recipients.Clear;
for i := 0 to strtoint(edt_qtd.Text) do
begin
Msg.Recipients.Add;
Msg.Recipients.Items[Msg.Recipients.Count - 1].Address := lstDestinatarios.Items[i];
end;
// Counteúdo
Msg.ContentType := 'text/plain';
Msg.Body.Text := mCorpo.Text;
// Conectando e enviando
Try
SMTP.Connect;
if SMTP.Connected then
begin
SMTP.Send(Msg);
inc(contador,1);
SMTP.Disconnect;
end;
begin
lbl_enviados.Caption := inttostr(contador);
if lbl_enviados.Caption = edit4.text then
begin
deletelogin;
end;
end;
Except
on e: Exception do
begin
ShowMessage('ERRO: ' + e.Message);
SMTP.Disconnect;
end;
End;
end;GOSTEI 0
Francisco Macário
19/03/2013
Olá Marcelo.
Qual o escopo da variável "Contador"? Onde você está iniciando a variável?
Qual o escopo da variável "Contador"? Onde você está iniciando a variável?
GOSTEI 0
Marcelo Alves
19/03/2013
MTP.Connect; if SMTP.Connected then begin SMTP.Send(Msg); inc(contador,1);<--- Aqui o contador. ele exibe a quantidade em um label.
GOSTEI 0
Francisco Macário
19/03/2013
MTP.Connect; if SMTP.Connected then begin SMTP.Send(Msg); inc(contador,1);<--- Aqui o contador. ele exibe a quantidade em um label.
Marcelo.
Reveja onde você declarou a variável contador. Ela deve estar como publica, inicie ela em zero ai sim ela ira implementar a contagem correta.
At.
GOSTEI 0
Marcelo Alves
19/03/2013
Era Justamente isso, obrigado consegui resolver.
GOSTEI 0