case oper.ItemIndex of
0: num:= '38066'+tel.text+'@sms.jeans.com.ua'; //Джинc
1: num:= '38050'+tel.Text+'@sms.umc.com.ua'; //UMC
2: num:= '38067'+tel.Text+'@sms.kyivstar.net'; //Киевстар
end;
NMSMTP1.PostMessage.ToAddress.Add(num); //адрес получателя
NMSMTP1.Connect; //соединяемся с сервером
NMSMTP1.SendMail; //отправляем почту
NMSMTP1.Disconnect; //отсоединяемся от сервера
//выводим сообщение об успешной отправке
ShowMessage('Сообщение отправлено!' + num);
end;
procedure TForm1.smsChange(Sender: TObject);
begin
//количество введенных символов
kolvo.Caption:= IntToStr(Length(sms.Text));
end;
end.
⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter 17.
Глава 18
FTP-клиент
Постановка задачи
Разработать FTP-клиент. Программа должна соединяться с FTP-cepвером, проходить аутентификацию и предоставлять пользователю возможность работать с файлами, которые находятся на сервере. У пользователя должна быть возможность передавать и получать файлы, создавать и удалять каталоги и т.п. Также пользователь может выполнять свои собственные команды на сервере.
Разработка формы
Создайте новый проект Delphi. Приготовьтесь к тому, что форма получится довольно большой (ширина — около 800 пикселей) и будет содержать большое количество разных кнопок и полей ввода. Присвойте ей заголовок FTP-client (свойство Caption) и разместите компоненты согласно табл. 18.1.
Таблица 18.1. Свойства формы FTP-клиента
Компонент Свойство Значение Пояснение Label1 (категория
Standard) Caption FTP-сервер Надпись метки Left 56 Отступ слева Top 16 Отступ сверху Label2 Caption Имя пользователя Надпись метки Left 16 Отступ слева Top 48 Отступ сверху Label3 Caption Пароль Надпись метки Left 72 Отступ слева Top 80 Отступ сверху Edit1 (категория
Standard) Name ftpserver Новое имя компонента Text ftp.narod.ru Адрес FTP-сервера Left 120 Отступ слева Top 8 Отступ сверху Edit2 Name name Новое имя компонента Text test6001 Имя пользователя Left 120 Отступ слева Top 40 Отступ сверху Edit3 Name pass Новое имя компонента Left 120 Отступ слева Top 72 Отступ сверху Edit4 Name port Новое имя компонента Text 21 Имя пользователя Left 120 Отступ слева Top 104 Отступ сверху Edit5 Name del Новое имя компонента Left 512 Отступ слева Top 8 Отступ сверху Edit6 Name cd Новое имя компонента Left 512 Отступ слева Top 40 Отступ сверху Edit7 Name cmd Новое имя компонента Left 512 Отступ слева Top 72 Отступ сверху Edit8 Name md Новое имя компонента Left 512 Отступ слева Top 104 Отступ сверху Edit9 Name rd Новое имя компонента Left 512 Отступ слева Top 136 Отступ сверху Edit10 Name download Новое имя компонента Left 512 Отступ слева Top 168 Отступ сверху Button1 (категория
Standard) Caption Подключиться Надпись на кнопке Left 8 Отступ слева Top 144 Отступ сверху Button2 Caption Отключиться Надпись на кнопке Left 123 Отступ слева Top 144 Отступ сверху Button3 Caption Загрузить файл на сервер Надпись на кнопке Left 512 Отступ слева Top 200 Отступ сверху Button4 Caption Удалить Надпись на кнопке Left 672 Отступ слева Top 8 Отступ сверху Button5 Caption Изменить каталог Надпись на кнопке Left 672 Отступ слева Top 40 Отступ сверху Button6 Caption Выполнить команду Надпись на кнопке Left 672 Отступ слева Top 72 Отступ сверху Button7 Caption Создать каталог Надпись на кнопке Left 672 Отступ слева Top 104 Отступ сверху Button8 Caption Удалить каталог Надпись на кнопке Left 672 Отступ слева Top 136 Отступ сверху Button9 Caption Скачать файл Надпись на кнопке Left 672 Отступ слева Top 168 Отступ сверху Memo (категория
Standard) Name status1 Новое имя компонента, предназначенного для отображения состояния соединения Lines Статус: Текст в поле Left 264 Отступ слева Top 8 Отступ сверху Height 217 Высота Width 233 Ширина OpenDialog (категория
Dialogs) Name Open1 Новое имя компонента, который будет использоваться для открытия файлов SaveDialog (категория
Dialogs) Name Save1 Новое имя компонента, который будет использоваться для сохранения файлов NMFTP (категория
FastNet) Name ftp Новое имя главного компонента программы
Полученная форма должна соответствовать рис. 18.1.