Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.02.2009, 19:39
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию Почта Файл

вот прикрепляю файл, всё норм отправляет...

делаю так:
Код:
TIdAttachment.Create(MailMessage.MessageParts,edit1.Text);

после когда хочу поменять файл, он отправляет и старый и новый, а после еще и еще и зависает...

я так понимаю TIdAttachment.Create добавляет файлы.. как можно удалить файл из MailMessage и после загрузить по-новой?
Ответить с цитированием
  #2  
Старый 03.02.2009, 20:14
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

неужели никто незнает?
Ответить с цитированием
  #3  
Старый 03.02.2009, 23:26
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

в MailMessage не видел.

TIdAttachment.Destroy не существует...

подскажите кто знает
Ответить с цитированием
  #4  
Старый 04.02.2009, 01:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Похоже такого не существует.
Можно посоветовать хранить все в отдельных переменных, а TIdMessage заполнять только перед собственно отправкой.
Ответить с цитированием
  #5  
Старый 04.02.2009, 05:07
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

Попробуй перед использованием занилить MailMessage или MessageParts, я как то решал эту проблему, но исходников проги под рукой нет, влом искать
Ответить с цитированием
  #6  
Старый 04.02.2009, 08:35
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

Цитата:
Сообщение от lmikle
Похоже такого не существует.
Можно посоветовать хранить все в отдельных переменных, а TIdMessage заполнять только перед собственно отправкой.

в процессе заполненния он их заполняет, а вот потом когда следующая отправка идет, он опять заполняет, а старое остается. и уже приходит не один файл, а 2. В след. письме 3 и т.д.


Цитата:
Сообщение от Vayrus
Попробуй перед использованием занилить MailMessage или MessageParts

я знаю что надо занилить, только незнаю как...
Ответить с цитированием
  #7  
Старый 04.02.2009, 09:08
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
По умолчанию

MailMessage := NIL;
или
MessageParts := NIL;
Ответить с цитированием
  #8  
Старый 04.02.2009, 18:07
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

Цитата:
Сообщение от Vayrus
MailMessage := NIL;
или
MessageParts := NIL;

если бы

"Cannot assign to a read-only property"
Ответить с цитированием
  #9  
Старый 04.02.2009, 18:22
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

попробовал сделать вот так вот:

Код:
 if MailMessage.MessageParts.AttachmentCount > 0 then
 MailMessage.MessageParts.Delete(MailMessage.MessageParts.AttachmentCount);

частенько вылетает ошибка "List Bounds (1) " и файл не меняется, а остается старый.. но думаю копать надо где-то здесь...
Ответить с цитированием
  #10  
Старый 04.02.2009, 18:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
MailMessage.MessageParts.Delete(MailMessage.MessageParts.AttachmentCount-1);

Удаляется последний. просто нумерация списков идет с 0. Поэтому ты и получаешь блямс.
Ответить с цитированием
  #11  
Старый 04.02.2009, 18:58
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

Цитата:
Сообщение от lmikle
Код:
MailMessage.MessageParts.Delete(MailMessage.MessageParts.AttachmentCount-1);

Удаляется последний. просто нумерация списков идет с 0. Поэтому ты и получаешь блямс.

у меня была на этот счет мысль) попробую..)
Ответить с цитированием
  #12  
Старый 04.02.2009, 19:02
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

отлично, получилось.. спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter