Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Индикатор програсса при работе TidSMTP (http://forum.oszone.net/showthread.php?t=247230)

camope3 19-11-2012 14:43 2028241

Индикатор програсса при работе TidSMTP
 
Реализована отправка электронной почты через компонент TidSMTP. Прикрутил индикацию прогресса через TGauge. В событиях TidSMTP вписано:
Events "OnBegin"
Код:

procedure TfEmail.SMTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode;  AWorkCountMax: Int64);
begin 
Gauge1.Progress := 0; 
Gauge1.MaxValue := AWorkCountMax;
end;

Events "OnWork"
Код:

procedure TfEmail.SMTPWork(ASender: TObject; AWorkMode: TWorkMode;  AWorkCount: Int64);
begin 
Gauge1.Progress:=AWorkCount;
end;

при отправке письма индикация не работает. помогите разобраться где проблема. Заранее благодарен

lxa85 19-11-2012 14:47 2028244

camope3, проект, результаты трассировки, краткие входные/выходные данные.
Отлаживать "за глаза" как то не хочется.

camope3 19-11-2012 17:55 2028393

lxa85, результаты трассировки:
Код:

Status: Disconnected.
Status: Disconnecting.
Status: Encoding attachment
Status: Encoding text
Status: Connected.
Status: Connecting to 94.100.177.1.
Status: Resolving hostname smtp.mail.ru.
Status: Файл успешно отправлен

данные:

Код:

procedure TfEmail.Button1Click(Sender: TObject);
begin
  StatusMemo.Clear;

  //установки SMTP
  SMTP.Username := fSetup.UserEdit.Text;
  SMTP.Password := fSetup.PassEdit.Text;

  SMTP.Host := fSetup.SmtpEdit.Text;
  SMTP.Port := StrToInt(fSetup.PortSmtpEdit.Text);

  //установки сообщения
  MailMessage.CharSet:='koi8-r'; // для корректности русских букв
  MailMessage.From.Address := FromEdit.Text;
  MailMessage.Recipients.EMailAddresses := ToEdit.Text;

  MailMessage.Subject := TemaEdit.Text;
  MailMessage.Body.Text := TextMemo.Text;

  if FileExists(FileEdit.Text) then
    TIdAttachmentFile.Create(MailMessage.MessageParts, FileEdit.Text);

  //отправка письма
  try
    try
      SMTP.Connect;
      SMTP.Send(MailMessage);
    except on E:Exception do
      StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
    end;
  finally
    if SMTP.Connected then SMTP.Disconnect;
  end;



Время: 11:49.

Время: 11:49.
© OSzone.net 2001-