Delphi. Учимся на примерах | страница 63



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

Создайте новый проект Delphi. Измените заголовок формы (свойство Caption) на Net Sender. Разместите вдоль левого края формы один над другим три компонента Label категории Standard и присвойте их свойству Caption значения IP-адрес:, Сообщение: И Количество:.

Рядом с каждой из меток разместите по компоненту Edit категории Standard. Самый верхний назовите ip (свойство Name), а свойству Text присвойте значение 192.168.0.1.; среднее поле назовите txt, а свойству Text присвойте какой-либо текст сообщения по умолчанию; самое нижнее поле назовите how, а свойству Text присвойте значение 1.

Под перечисленными компонентами разместите компонент Checkbox категории Standard. Присвойте ему имя secure, свойству Caption присвойте значение Отключить прием сообщений, а свойству Checked — значение True.

В самом низу формы разместите кнопку (компонент Button категории Standard), присвоив ее свойству Caption значение Send. Также нам понадобится таймер (компонент Timer категории System), для которого свойству Interval следует присвоить значение 10.

Полученная форма должна соответствовать рис. 15.1.

Рис. 15.1. Форма для программы отправки сообщений в локальной сети

Разработка программного кода

Прежде всего напишем собственную процедуру bomb, которая будет считывать все настройки и отправлять сообщение. Объявите эту процедуру как закрытый член класса формы:

>type

> TForm1 = class(TForm)

> …

>private

> { Private declarations }

> procedure bomb();

>public

> { Public declarations }

>end;

Также нам понадобится глобальная переменная i типа integer:

>var

> Form1: TForm1;

i: integer;

Теперь создадим реализацию процедуры bomb в разделе implementation:

>procedure TForm1.bomb();

>begin

> //проверяем, не пустое ли текстовое сообщение

> if txt.Text = '' then txt.Text:= '!';

> //если количество не указано, то отправляем одно сообщение

> if how.Text= '' then how.Text:= '1';

> if ip.Text = '' then ip.Text:= '127.0.0.1'; {если ip-адрес не указан, то отправляем на локальный компьютер}

> //отправляем указанное количество сообщений

for i:=1 to StrToInt(how.Text) do

>  WinExec(PChar('net send ' + ip.Text + '"' + txt.Text + '"'), 0); //отправка сообщения

>end;

В этой процедуре выполняется проверка: все ли необходимые поля заполнены. Если нет текста сообщения, то устанавливаем знак "!"; если не указан IP-адрес, то отправляем сообщение на локальный компьютер с адресом 127.0.0.1; если не указано количество сообщений, то отправляем одно сообщение. Сообщения отправляются с помощью стандартной команды net send, которая имеет следующий синтаксис: