| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Ппоблема с idSMTP |
| Автор: a.S.d 25.2.2005, 16:31 | ||
У меня консольное приложение. Нужно отправить почту, используя компонент idSMTP. Но когда дело доходит до до использования компонента, прога вылетает. Вот код процедуры:
Если всё это сделать с формой и дописать перед каждым idSMTP1 и idmessage1 form1. , то всё работает. В чём тут дело? |
| Автор: z-END 25.2.2005, 16:40 |
| я чегото не вижу где у тебя этот самый idSMTP1 создается... или это кусок кода? |
| Автор: Snowy 25.2.2005, 16:43 |
| idSMTP1:=TidSMTP1.Create(); у тебя вообще есть? Или ты его только в var'ах определил? |
| Автор: a.S.d 25.2.2005, 16:44 |
| z-END Да, действительно не создаётся. А как его создать? |
| Автор: z-END 25.2.2005, 16:46 |
| Snowy уже написал:) |
| Автор: a.S.d 25.2.2005, 16:53 |
| В начало процедуры вставил idsmtp1:=tidSMTP.Create(idsmtp1); Тоже самое. |
| Автор: Snowy 25.2.2005, 17:16 |
| Нет, в качестве параметра нужно передать хэндл какого-нить окна (обычно главное). Но для консольного это затруднительно. Попробуй в скобках просто дать nil. И не забуть после использования или при выходе уничтожить объект: IdSMTP.Free; |
| Автор: a.S.d 25.2.2005, 17:28 |
| Snowy При чём тут хэндл? tidSMTP.Create(AOwner:TComponent); А с nil не работает. |
| Автор: z-END 25.2.2005, 17:32 |
| ну тогда добавь в Uses Forms и сздавай так: idsmtp1 := tidSMTP.Create (Application); |
| Автор: a.S.d 25.2.2005, 17:40 |
| z-END Так не годится, размер становится большой. Хотя если так сделать, всё равно не работает. |
| Автор: Snowy 25.2.2005, 17:44 | ||
| Ну перепутал. Указатель на TComponent. Которого у тебя в консоли нет. Вот, немного неполный твой код, который я доработал до рабочего состояния. Проверил - работает. nil подходит. Просто ты и IdMessage тоже не создал.
Но имей ввиду, что нужно еще ексепшены обрабатывать. Вдруг коннекта не будет. |