![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про отправку мыла. [D6, XP]
vegarulez © (2007-07-31 11:11:00)Привет Мастерам!
У меня вот такой вопрос: я в программке использую кусок, который отправляет данные на мыло:
procedure Smtpsend();
begin
with Formmain.IdMsgSend do
begin
Body.Assign(Memo1.Lines);
From.Text := 'yyy';
Recipients.EMailAddresses := q[17]; { To: header }
Subject := FormMain.a; { Subject: header }
Priority := TIdMessagePriority(mpNormal); { Message Priority }
ReceiptRecipient.Text := From.Text;
end;
{authentication settings}
Formmain.SMTP.AuthenticationType := atLogin; {Simple Login}
Formmain.SMTP.UserID :='xxx';
Formmain.SMTP.Password := 'xxx';
{General setup}
Formmain.SMTP.Host := 'smtp.xxx.ru';
Formmain.SMTP.Port := 25;
{now we send the message}
Formmain.SMTP.Connect;
try
Formmain.SMTP.Send(Formmain.IdMsgSend);
finally
Formmain.SMTP.Disconnect;
end;
end;
Так вот при отправке, вся программка "висит" какое-то время... пока письмо не отправится, подскажите как можно сделать, чтобы отправка допустим осуществлялась как-нить в потоке, не влияя на работу приложения?
StriderMan (2007-07-31 12:46:00) [1]честно говоря нет. сам изучал по яндексу и гуглу, по книжкам каким-то еще, уже не помню каким :)
vegarulez (2007-07-31 12:31:00) [2]>>прежде всего читать про многопоточные приложения
у тебя есть какая нить хорошая ссыль на эту тему?
буду очень признателен.
StriderMan (2007-07-31 11:32:00) [3]
> Вот это, если можно попдробнее... Как раз так и хочу сделать, но не знаю как...
прежде всего читать про многопоточные приложения
ну или TThread + F1, если лень :)
StriderMan (2007-07-31 11:20:00) [4]
> компонент TIDAntifreeze
хе, не знал про такой
vegarulez (2007-07-31 11:20:00) [5]Savek (31.07.07 11:17) [2]
Уже есть...
StriderMan © (31.07.07 11:17) [1]
>>еще лучше запихнуть прием-отправку в отдельный поток.
Вот это, если можно попдробнее... Как раз так и хочу сделать, но не знаю как...
StriderMan (2007-07-31 11:17:00) [6]TIdSMTP.OnWork
туда можно подложить Application.ProcessMessages, только осторожно :)
еще лучше запихнуть прием-отправку в отдельный поток.
Savek (2007-07-31 11:17:00) [7]Кинь на форму компонент TIDAntifreeze и радуйся :)