Читаем Delphi. Трюки и эффекты полностью

Листинг 11.24.

Обработка строки, полученной от сервера

procedure ProcessMessage(strMessage: string);

var

strAction: string; //Тип сообщения (префикс сообщения)

len: Integer; //Длина строки strAction

begin

//Определим тип сообщения и выполним соответствующие действия

len := Pos(\':\', strMessage);

strAction := Copy(strMessage,1,len-1);

Delete(strMessage,1,len);

if (strAction = \'ok\') then

begin

//Регистрация пользователя завершена – можно отправлять

//сообщения

Connect;

end

else if (strAction = \'error\') then

begin

//Ошибка!!!

frmClient.TCPClient.Disconnect;

Disconnect;

MessageDlg(strMessage, mtError, [mbOK], 0);

end

else if (strAction = \'adduser\') then

begin

//К разговору присоединился новый пользователь

frmClient.lstUsers.Items.Add(strMessage);

end

else if (strAction = \'deluser\') then

begin

//Какой-то пользователь отсоединился

frmClient.lstUsers.Items.Delete(

frmClient.lstUsers.Items.IndexOf(strMessage));

end

else begin

//Покажем принятое сообщение

frmClient.txtChat.Lines.Add(strMessage);

end;

end;

Далее приводятся обработки событий, на которых, собственно, и основана работа клиентской программы. Обработчик нажатия кнопки cmbConnect, приведенный в листинге 11.25, пытается присоединиться к серверу. Если клиент присоединен к серверу, то эта же кнопка используется для его отсоединения.

...

Листинг 11.25.

Присоединение/отсоединение от сервера

procedure TfrmClient.cmbConnectClick(Sender: TObject);

begin

if (cmbConnect.Caption = \'Подключиться\') then

begin

//Проверим, чтобы были введены имя сервера

//и имя пользователя

if (txtServer.Text = \'\')then

begin

MessageDlg(\'Введите имя сервера в текстовое поле.\',

mtInformation, [mbOK], 0);

Exit;

end

else if (txtUser.Text = \'\')then

begin

MessageDlg(\'Введите имя пользователя в текстовое поле.\',

mtInformation, [mbOK], 0);

Exit;

end;

//Пытаемся подключиться к серверу

try

TCPClient.Host := txtServer.Text;

TCPClient.Connect;

except

MessageDlg(\'Не удается соединиться с сервером\',mtError,

[mbOK], 0);

end;

end

else

//Отключаемся от сервера

TCPClient.Disconnect;

end;

Обработчик нажатия кнопки cmbSend (листинг 11.26) отправляет сообщение, которое могут прочесть все пользователи, присоединенные к серверу.

...

Листинг 11.26.

Отправка сообщения всем собеседникам

procedure TfrmClient.cmbSendClick(Sender: TObject);

begin

if (txtMessage.Text <> \'\') then

begin

//Отправка сообщения всем собеседникам

TCPClient.WriteLn(\'text:\' + txtMessage.Text);

txtMessage.Text := \'\

txtMessage.SetFocus;

end;

end;

При двойном щелчке кнопкой мыши на имени в списке пользователей отправляется сообщение, которое получает только выделенный в списке пользователь (листинг 11.27).

...
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных