Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi 2

Автор: Erazer
Дата сообщения: 06.10.2006 14:55

Цитата:
А с флагами ты немножно недобрал вот поставь такие и все будет ОК

может и недбрал, но все равно даже с твоими флагами - "Ошибка при удалении файла или папки", "Не удается удалить файл. Не удается произвести чтение из файла или с диска. "
Автор: Jokerjar
Дата сообщения: 06.10.2006 15:13
У кого-нибудь есть пример отправки e-mail без помощи сторонних почтовых программ и без использования компонентов (indy и прочих)? Поделитесь!
Автор: Erazer
Дата сообщения: 06.10.2006 16:19
Мдя.... сам столкнулся сам решил сам опубликовал решение
Проблема решается архипросто "d := DestPath+'\*.*'; DeleteFiles(Handle,trim(d), True);"
Кааим-то макаром в d появляются лишние пробелы которые при работе с путями без пробелов не всплывают,мы их просто удаляем trim(d) и все работает как нуно
Спасибо всем принявшим участие в решении
Автор: Sexton
Дата сообщения: 08.10.2006 00:48
Jokerjar, есть хорошая бесплатная бибилиотека (не компонент). Кажется, Synapse Library. Сам когда-то ей пользовался. Процедура отправки письма (в потоке) с помощью этой библиотеки занимала полсотни строк.
Автор: Jokerjar
Дата сообщения: 08.10.2006 05:43
Sexton, спасибо. Я начитался доков и сам написал модуль для KOL. Умеет отправлять html письма и прикреплять файлы. Несжатый екзешник получается где-то 35 кб.
Автор: DroN_S
Дата сообщения: 08.10.2006 09:25
Jokerjar
SakeMail - бесплатный компонент и размер экзешника не так увеличивается...
ну а если не использовать всего сторонннего, то можно через MAPI или сокеты... ручкам на WinAPI
Автор: Jokerjar
Дата сообщения: 08.10.2006 09:57

Цитата:
ручкам на WinAPI

Так и сделал

Теперь такой вопрос: как можно назначить событие на подключение к интернету, то есть выполнить определенную процедуру в тот момент, когда
компьютер удачно вышел в инет. Желательно без циклов и на Win API
Автор: DroN_S
Дата сообщения: 08.10.2006 10:03

Цитата:
компьютер удачно вышел в инет

В 9х не проблематично GetInternetConnection - шото типа этого , а для ХР или 2000 (чтобы не программа не выбрасывала подключение по умолчанию) используем последовательно 2 функции GetInternetConnection InetIsOffline
Автор: Arvur
Дата сообщения: 08.10.2006 12:33
Jokerjar

Цитата:
Я начитался доков и сам написал модуль для KOL. Умеет отправлять html письма и прикреплять файлы.

Поделишься с общественностью?
Автор: Jokerjar
Дата сообщения: 08.10.2006 13:37
Arvur, хватай! SMTP

Разрешаю даже подкорректировать если надо . Используй примерно так:

procedure SendMail(P: Pointer);
var
let: TLetter;
begin
let.NeedAuth := false;
let.mHost := 'smtp.yandex.ru';
let.mFrom := 'me@yandex.ru';
let.mTo := 'you@yandex.ru';
let.mFromName := 'me';
let.mToName := 'you';
let.Subject := 'Тема';

OpenMIME(let.mBody);
AddHTMLBlockToBody(let.mBody,'<b><div style="color:red">Привет. Не ждал?</div></b>');
AttachFileToBody(let.mBody,'test.rar');
CloseMIME(let.mBody);

SMTPConnectAndSendMail(let,form1.memo1);
end;

Автор: DroN_S
Дата сообщения: 08.10.2006 13:55
Jokerjar
вот если бы ты ещё теги code and /code использовал, было бы вообще просто супер
Автор: Jokerjar
Дата сообщения: 08.10.2006 14:12
DroN_S, а я уже исправил


Добавлено:
Кстати, то что ты говорил по поводу GetInternetConnection InetIsOffline. Это же функции, проверяющие на "онлайность". То-есть чтобы зафиксировать выход в инет, нужно периодически проверять их значение. А не существует чего то типа хука? А то не хочется по несколько часов цикл в проге гонять.
Автор: DroN_S
Дата сообщения: 08.10.2006 14:20

Цитата:
GetInternetConnection InetIsOffline. Это же функции, проверяющие на "онлайность".

ну да, так и есть...
слушай, вот ты написал модуль и при этом используешь KOL... а можно без него всё тоже самое сделать?
Автор: Jokerjar
Дата сообщения: 08.10.2006 14:22
Без KOL можно. Но тогда надо sysutils, повлияет на размер. А чем KOL плох?
Автор: DroN_S
Дата сообщения: 08.10.2006 14:25

Цитата:
А чем KOL плох

я его вообще не использую....

Цитата:
Без KOL можно.

можешь привести пример
Автор: Jokerjar
Дата сообщения: 08.10.2006 14:26
DroN_S, надо немного переделать. Чуть позже выложу
Автор: DroN_S
Дата сообщения: 08.10.2006 14:29

Цитата:
Чуть позже выложу

ок, буду ждать...
Автор: Arvur
Дата сообщения: 08.10.2006 14:30
Jokerjar
Thanx!
Автор: goodwen
Дата сообщения: 08.10.2006 15:08
Привет всем.
Как в делфи путь к файлу указывать если его месторасположение заранее не известно ? Файл будет лежать в папке WAVE но где сама пака будет я не знаю.
Вызывая функцию PlaySound как мне указать место расположение ?

По памяти помню, что как -то так PlaySound ('...\\Wave\intro.wav',0,SYNC); но не работает
Подскажите а лучше завидите на ссылку сам я в яндыксе не нашел ответа.
Автор: Jokerjar
Дата сообщения: 08.10.2006 15:14
DroN_S, чет даже не знаю. имхо кол - идеальный вариант. Мой модуль выводит ответы сервера в kolmemo. Если ты не используешь KOL, а VCL, то нет смысла использовать мой модуль, выигрыша в размере все равно не будет. Если для консольной, то в uses просто меняешь KOL на sysutils, а в самом коде все Pcontrol на string. А может ответ сервера вообще не нужен?

Цитата:
я его вообще не использую....

Да и не нужно. Просто в uses добавил и все...

Автор: DroN_S
Дата сообщения: 08.10.2006 15:38
goodwen
если ты вообще не знаешь где находится будет папка, то без диалога выбора никак, а сли у тебя только будет меняться путь самой проги, но папка будет лежать в корне программы, например, \Wave\Sound1.wav, то делай так

Код:
PlaySound (ExtractFilePath(paramstr(0))+'Wave\intro.wav',0,SYNC);
Автор: Jokerjar
Дата сообщения: 08.10.2006 15:44
С определением "онлайности" разобрался. А теперь хочу написать что-то вроде цикла, но который бы не негрузил процессор и несколько часов работал в фоне, проверяя, скажем, раз в минуту состояние переменной.
Автор: DroN_S
Дата сообщения: 08.10.2006 15:51
Jokerjar
зачем цикл, используй системный таймер...

Добавлено:

Цитата:
Если для консольной, то в uses просто меняешь KOL на sysutils, а в самом коде все Pcontrol на string

похоже не только это....
не компилируется, очень на много ругается...
Автор: Jokerjar
Дата сообщения: 08.10.2006 17:58
DroN_S, по памяти не помню. Но убери filesize из условия, а все OutServAns.add меняй на OutServAns := ... Да, и в процедурах в параметрах везде где OutServAns пиши ... var OutServAns: string ... Если еще будет ругаться, скажешь хде (делфи нет под рукой)
Автор: goodwen
Дата сообщения: 08.10.2006 18:18
DroN_S

"сли у тебя только будет меняться путь самой проги, но папка будет лежать в корне программы" Да именно так. Спасибо пример работает единственное PlaySound требует АнсиЧар поэтому приходится приводить типы.
PathWave:=PAnsiChar(ExtractFileDir(ParamStr(0)) +'\Wave\intro.wav');
PlaySound(PathWave,0,SND_ASYNC);


И все же 2 строчки кода неужели мне приснилось про «…\\Wave\intro.wav» и прощи никак нельзя ?
Автор: DroN_S
Дата сообщения: 08.10.2006 18:51

Код: PlaySound(PChar(ExtractFileDir(ParamStr(0)) +'Wave\intro.wav'),0,SND_ASYNC)
Автор: goodwen
Дата сообщения: 08.10.2006 19:07
ну да) туплю
Автор: Jokerjar
Дата сообщения: 09.10.2006 06:16
Столкнулся с такой проблемой: как проверить имя файла на допустимость (Например Check('FILE*.TXT') = false, Check('FILE8.TXT') = true). Может в каком то модуле есть что-то подобное?
Автор: DroN_S
Дата сообщения: 09.10.2006 06:33
Jokerjar

Код:
if FileExists('Text.txt') then
//делаешь что нужно
else
begin
if Application.MessageBox('файл не найден!','Ошибка!!!',
MB_OK + MB_ICONERROR) = IDOK then halt;
end;
Автор: RedPromo
Дата сообщения: 09.10.2006 09:10
DroN_S
Вобще эта функция проверяет наличие файла физически,
а Jokerjar вроде как нужно проверить валидность имени файла нового не обязяательно существующего. Я лично вытягивал функцию проверки из компонентов Raize.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.