PDA

Просмотр полной версии : Delphi-Хитрости : Вопросы и ответы


CD-ROM
30-01-2005, 19:47
Начну эту тему с вопросов :D :
1.Как из приложения Delphi запустить SMTP сервер ?
1.2 Как с этого сервера отправить письмо с вложением ?
2. Как средствами Windows cоздать ZIP-Архив (Сжатую папку)под паролем ?
3. Как средствами Windows cоздать ключ в реестре

Snider
30-01-2005, 23:32
Любой заматервший дельфятник просто лезет в инет и спрашивает
на форумах про компоненту, которые эти действия выполняет =))

Пишу, что первым в голову пришло:
1. Вариант для ленивых - ShellExecute - Net start (если SMTP под IIS)
1.2. (Опуская вопрос "а нафига?!") - RTFM по SMTP серверу. Под
Халяву есть компоненты (FastWeb и Indy, кажется)
2. Для ленивых - ShellExecute коммандной строки + В WinRar есть свой API.
3. RTFM MSDN + в Дельфях есть класс под это дело

CD-ROM
31-01-2005, 18:23
Ответ на Вопрос 1.2

//---------------------------------------------------------
with IdMessage1 do
begin
Body.Assign(Memo1.Lines);//Текст сообщения
From.Text := 'Ivanov@Mail.ru';//От кого
Subject :='Screw aka Viktor' ;//Тема в виде рекламы
//charset:='ISO-8859-1'; Установка кодировки
//charset:='US-ASCII';
Recipients.EMailAddresses := 'Petrov@Mail.ru';//Кому
Priority := TIdMessagePriority(mpHighest); //Приоритет

{Получатель точной копии}
CCList.EMailAddresses := 'Sidorov@Mail.ru';
{Получатель слепой копии}
//BccList.EMailAddresses :=ReadIni('Smtp','FromAdress','Options.ini');
end;

idSMTP1.Host := 'LOCALHOST';//Сервер SMTP
idSMTP1.UserID := 'Ivanow';//Логин
idSMTP1.Password := 'qwerty';//Пароль
idSMTP1.Port := 25;//Порт SMTP сервера
idSMTP1.MailAgent := 'Test TidSMTP';//Имя агента
idSMTP1.AuthenticationType := atLogin; {Нужна аутентификация на серванте}
//idSMTP1.AuthenticationType := atNone; {Не нужна аутентификация на серванте}

try
If idSMTP1.connected then //Если имеется коннект значит дисконнект
idSMTP1.Disconnect;
idSMTP1.Connect; //Иначе просто коннест
idSMTP1.Send(IdMessage1); //Отправка письма.
except
idSMTP1.Disconnect; //Если исключительная ситуация- дисконнект,выводим мессагу и выпрыгуем нафиг
Application.MessageBox(Pchar('У Вас имеются проблемы со связью!'+#10+'Читай FAQ в HELP''e.'),'Мощная ошибка.',MB_OK or MB_ICONERROR);
exit;
end;

idSMTP1.Disconnect; //Если всё хорошо отправилось то дисконнект
end;
//---------------------------------------------------------
Теперь нужна создать рабочий сервер с помощью idSMTPServer , кто знает подскажите как ?
//----------------------------------------------------------
Теперь на счет WinRar :
Конечно можно использовать функции библиотек WinRARa , а если на компе стоит другой архиватор или
его совсем нету ???
//---------------------------------------------------------
насчет Реестра тоже разобраля нужно использовать библиотеку ADVAPI32.DLL
//-------------------------------------------------------
поясни пожалуйста ответ номер 1

CD-ROM
03-02-2005, 18:34
:( буду считать что ответа на свой вопрос я не получил :(

CD-ROM
02-03-2005, 22:34
procedure TForm1.Button1Click(Sender: TObject);
begin
//x - столбец
//y - строка
button1.Caption:='x = '+inttostr(stringgrid1.col)+' , '+'y = '+inttostr(stringgrid1.row);
end;