Книга: Delphi. Учимся на примерах

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

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

По нажатию кнопки Connect должны считываться все настройки и выполняться соединение с сервером:

procedure TForm1.Button1Click(Sender: TObject);
begin
 Client.Port:= StrToInt(port.Text); //считываем порт
 Сlient.Address:= ip.text; //считываем ip-адрес сервера
 Client.Active:= True; //соединяемся
 Timer1.Enabled:= True; //включаем таймер
end;

Сначала мы считываем все необходимые настройки, а затем предпринимаем попытку соединиться с сервером. Если все нормально, то включаем таймер, по которому будут передаваться координаты указателя мыши.

Обработаем нажатие кнопки Disconnect:

procedure TForm1.Button2Click(Sender: TObject);
begin
 Timer1.Enabled:= False;//выключаем таймер
 Client.Close; //закрываем соединение
 Client.Active:=False; //отключаемся от сервера
end;

При нажатии кнопки Disconnect мы перестаем передавать координаты указателя на сервер и отсоединяемся от него.

Для того чтобы на сервере не возникало ошибок при аварийном выключении клиента, создайте обработчик события формы OnDestroy и добавьте в него следующий код:

procedure TForm1.FormDestroy(Sender: TObject);
begin
 Client.Close; //закрываем соединение
 Client.Active:=False; //отключаемся от сервера
end;

При аварийном завершении программы закрывается соединение и выполняется отключение от сервера.

Для уведомления пользователя об успешном соединении с сервером создайте обработчик события client.OnConnect:

procedure TForm1.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 ShowMessage('Connected!'); //показать сообщение
end;

Для реализации аналогичного действия при отсоединении от сервера, следует создать обработчик события OnDisconnect:

procedure TForml.ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 ShowMessage('Disconnected!'); //сообщение при отсоединении
end;

Теперь обработаем событие OnTimer для компонента Timer:

procedure TForm1.Timer1Timer(Sender: TObject);
var
 cur:TPoint; //хранит координаты указателя мыши
begin
 GetCursorPos(cur); //узнаем координаты указателя мыши
 //отправляем данные на сервер
 Client.Socket.SendText(IntToStr(cur.X) +'_' + IntToStr(cur.Y));
end;

Каждые полсекунды мы будем получать координаты указателя мыши и отправлять их на сервер. Программа-клиент полностью готова. Теперь разработаем программу-сервер.

Оглавление книги


Генерация: 0.222. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз