Войти

Показать полную графическую версию : Индикатор програсса при работе TidSMTP


camope3
19-11-2012, 14:43
Реализована отправка электронной почты через компонент 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
camope3, проект, результаты трассировки, краткие входные/выходные данные.
Отлаживать "за глаза" как то не хочется.

camope3
19-11-2012, 17:55
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;




© OSzone.net 2001-2012