Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2009, 13:53   #1
Progs1024
Пользователь
 
Регистрация: 20.09.2009
Сообщений: 33
По умолчанию Отправка файлов на почту...

нужно отправить несколько файлов по очереди.

Код:
procedure TForm1.Button4Click(Sender: TObject);
var s,n,e,u,t:string;
    j,i:integer;
begin
f:=TStringList.Create();
f.LoadFromFile(extractfilepath(paramstr(0))+'\data.set');
progressbar1.Max:=f.Count;
for i:=0 to f.Count-1 do begin
  se:=false;
  s:=f.Strings[i];
  t:=s[length(s)];
  for j:=1 to length(s) do begin
          if s[j]<>';' then
            n:=n+s[j]
          else
            break;
  end;
  inc(j);
  for j:=j to length(s) do begin
        if s[j]<>';' then
           p:=p+s[j]
        else
          break;
  end;
  inc(j);
  for j:=j to length(s) do begin
        if s[j]<>';' then
           e:=e+s[j]
        else
          break;
  end;
  inc(j);
  for j:=j to length(s) do begin
        if s[j]<>';' then
           u:=u+s[j]
        else
          break;
  end;

  f:=TStringList.Create();
  f.LoadFromFile(extractfilepath(paramstr(0))+'\set.set');
  IdSMTP1.Host := f.Strings[0];
  IdSMTP1.Username := f.Strings[1];
  IdSMTP1.Password := f.Strings[2];
  M:=TIdMessage.Create(Form1);
  M.Body.Text:='Оценки ученика '+u;
  M.From.Text :=f.Strings[3];
  M.Recipients.Add;
  M.Subject := f.Strings[4];
  m.Recipients.EMailAddresses:=e;
  m.IsEncoded:=true;
  f.Free;

  st:=TSendThread.Create(true);
  st.Resume;
  st.Priority:=tpLower;
end;
f.Free;
end;
поток:
Код:
unit TSendThreadUnit;

interface

uses
  Classes, SysUtils, IdMessage;

type
  TSendThread = class(TThread)
  private
    ATT:TIdAttachment;
    { Private declarations }
  protected
    procedure Execute; override;
  end;

implementation

uses Main;

procedure TSendThread.Execute;
begin
ATT:=TIdAttachment.Create(m.MessageParts,main.p);
try
   form1.IdSMTP1.Connect();
   if form1.IdSMTP1.Connected then begin
      form1.label8.Caption:='Статус: Отправляется';
      form1.IdSMTP1.Send(main.M);
      form1.Label8.Caption:='Статус: Отправлено';
      form1.ProgressBar1.Position:=form1.ProgressBar1.Position+1;
      sn:=true;
   end
   else begin
      form1.Label8.Caption:='Статус: Не удалось отправить';
      sn:=false;
      exit;
   end;
finally
  form1.IdSMTP1.Disconnect;
end;
att.free;
main.se:=true;
end;

end.
Вобщем надо чтобы пока не отправился один файл, другой не отправлялся. как это сделать?
Progs1024 вне форума Ответить с цитированием
Старый 26.11.2009, 17:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Смотрим вниз, на "Похожие темы".
mihali4 вне форума Ответить с цитированием
Старый 26.11.2009, 17:29   #3
Progs1024
Пользователь
 
Регистрация: 20.09.2009
Сообщений: 33
По умолчанию

Уважаемый Михалыч, в "похожих" темах нету ответа на мой вопрос
Progs1024 вне форума Ответить с цитированием
Старый 26.11.2009, 18:11   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну поставьте в цикл отправки проверку статуса и ждите, пока он не определен...
mihali4 вне форума Ответить с цитированием
Старый 26.11.2009, 18:48   #5
Progs1024
Пользователь
 
Регистрация: 20.09.2009
Сообщений: 33
По умолчанию

Хорошо, упрощу вопрос...
После кода
Код:
st:=TSendThread.Create(true);
st.Resume;
st.Priority:=tpLower;
мне нужно узнать выполнился ли код в потоке или нет, но проблема в том что код в потоке выполняется не сразу а через несколько секунд... Как узнать?
Progs1024 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка на почту данных из ячеек? Madagaskar Microsoft Office Excel 14 08.11.2011 22:02
отправка файла на почту CraZZy RabbIt Общие вопросы Delphi 9 21.04.2009 18:59
Отправка данных на почту Claster Общие вопросы Delphi 2 20.11.2008 21:10