Delphi. Учимся на примерах - [34]

Шрифт
Интервал


>uses

> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls, ExtCtrls;


>type TForm1 = class(TForm)

> Button1: TButton;

> Button2: TButton;

> Client: TClientSocket;

> Timer1: TTimer;

> port: TEdit;

> ip: TEdit;

> Label1: TLabel;

> Label2: TLabel;

> procedure Button2Click(Sender: TObject);

> procedure FormDestroy(Sender: TObject);

> procedure Button1Click(Sender: TObject);

> procedure Timer1Timer(Sender: TObject);

> procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket);

> procedure ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);

>private

> { Private declarations }

>public

> { Public declarations }

>end;


>var

> Form1: TForm1;


>implementation

>{$R *.dfm}


>procedure TForm1.Button2Click(Sender: TObject);

>begin

> Timer1.Enabled:= False;//выключаем таймер

> Client.Close; //закрываем соединение

> Client.Active:= False; //отключаемся от сервера

>end;


>procedure TForm1.FormDestroy(Sender: TObject);

>begin

> Client.Close; //закрываем соединение

> Client.Active:=False; //отключаемся от сервера

>end;


>procedure TForm1.Button1Click(Sender: TObject);

>begin

> Client.Port:= StrToInt(port.Text); //считываем порт

> Сlient.Address:= ip.text; //считываем ip-адрес сервера

> Client.Active:= True; //соединяемся

> Timer1.Enabled:= True; //включаем таймер

>end;


>procedure TForm1.Timer1Timer(Sender: TObject);

>var

> cur:TPoint; //хранит координаты указателя мыши

>begin

> GetCursorPos(cur); //узнаем координаты указателя мыши

> //отправляем данные на сервер

> Client.Socket.SendText(IntToStr(cur.X) +'_' + IntToStr(cur.Y));

>end;


>procedure TForm1.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);

>begin

> ShowMessage('Connected!'); //показать сообщение

>end;


>procedure TForml.ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);

>begin

> ShowMessage('Disconnected!'); //сообщение при отсоединении

>end;


>end.

⊚ Все файлы проекта и исполняемый файл клиентской программы находятся на прилагаемом к книге компакт-диске в папке Chapter_16\Client, а файлы проекта и исполняемый файл серверной программы — в папке Chapter_16\Server.

Глава 17

Бесплатная отправка SMS через Internet

Постановка задачи

Разработать программу для бесплатной отправки SMS через Internet. Осуществлять отправку через сайты популярных украинских операторов ("UMC", "Джинс", "Киевстар"…)

Разработка формы

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

Создайте новый проект Delphi и присвойте форме заголовок SMS-sender (свойство Caption). Разместите на форме компонент Label категории Standard и присвойте его свойству Caption значение Оператор:. Справа от него разместите компонент ComboBox (раскрывающийся список) категории Standard и измените его свойства согласно табл. 17.1.

Примечание

Свойство ComboBox.Items — это список строк, редактируемый в специальном окне, которое открывается по двойному щелчку мышью в соответствующем поле инспектора объектов.

Таблица 17.1. Свойства компонента ComboBox

Свойство Значение Пояснение
Name oper Новое имя компонента
Text <Выберите оператора> Текст в поле
Items Джинс(066) UMC(050) Киевстар(067) Перечень операторов, на которых мы будем отправлять SMS

Примечание

В данном примере используется перечень мобильных операторов, действующих на территории Украины. Если вы живете в другой стране, используйте собственный список операторов.

Под первой меткой разместите еще один компонент label, присвоив его свойству caption значение Номер:. Справа от него разместите компонент Edit категории Standard и назовите его tel (свойство Name).

Ниже этих двух компонентов разместите компонент Label с текстом Сообщение: (свойство Caption). Под ним разместите компонент Memo категории Standard, присвоив ему имя sms. Для него можно поставить ограничение на ввод 160 символов, поскольку мобильные операторы обычно разрешают отправлять с Web-сайта сообщения длиной не больше 160 символов. Для того чтобы установить это ограничение, присвойте свойству sms.MaxLength значение 160.

Для отображения количества символов, введенных в поле sms, разместите под memo-полем компонент Label и измените его свойства согласно табл. 17.2.

Таблица 17.2. Свойства компонента Label для отображения длины сообщения

Свойство Значение Пояснение
Name kolvo Новое имя компонента
Caption 0 Надпись метки
Font.Color clRedЦвет надписи — красный
Font.Size18Размер шрифта

В правом нижнем углу формы разместите кнопку (компонент Button категории Standard), присвоив ее свойству Caption значение Отправить.

Для отправки SMS нам понадобится компонент для передачи электронной почты через SMTP. Такой компонент есть на вкладке FastNet и называется он NMSMTP. Для того чтобы установить некоторые настройки, у вас должен быть собственный адрес электронной почты. Бесплатных почтовых серверов в Internet предостаточно, так что с этим проблем возникнуть не должно.

В рассматриваемом примере будет фигурировать адрес электронной почты автора ([email protected]). При желании, все перечисленные ниже настройки, конечно же, можно заменить собственными.

В свойстве NMSMTP1.Host следует указать smtp-сервер. Для yandex.ru это свойство должно принять значение smtp.yandex.ru. В свойстве UserID необходимо указать логин отправителя — указываем heel-adm. Теперь разверните свойство PostMessage и измените значение вложенного свойства FromAddress на [email protected], a FromName — на heel-adm. Значение свойства Port измените на 25.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.