Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
27.03.2015
Размер:
379.39 Кб
Скачать

Окна сообщений

Рассмотрим две функции вывода на экран окна сообщений: ShowMessage и MessageDlg. Первая из них позволяет вывести на экран простое окно сообщения, вторая - окно с дополнительными параметрами (несколько кнопок, иконка и др.)

Обе эти функции выводят модальное окно.

Начнем с ShowMessage. Вот сразу пример:

ShowMessage("Ошибка!");

Этот пример выведет сообщение "Ошибка!". Никаких дополнительных параметров у функции ShowMessage нет - только текст вообщения.

А вот функция MessageDlg позволяет задавать для выводимого окна сообщения ряд дополнительных параметров. Вот пример использования этой функции:

MessageDlg("Внимание!", mtInformation, TMsgDlgButtons() << mbNo << mbYes, 0);

Первый параметр у этой функции - это текст сообщения, второй (типа TMsgDlgType) - значок сообщения. Этот параметр может принимать следующие значения:

Значение

Описание

mtWarning

Предупреждение

mtError

Ошибка

mtInformation

Информация

mtConfirmation

Подтверждение

mtCustom

Картинка отсутствует, в заголовке окна - название файла программы.

Третий параметр функции MessageDlg - это кнопки, показываемые в окне сообщения. Для задания кнопок мы используем следующую конструкцию:

TMsgDlgButtons() << mbNo << mbYes

В этом параметре могут использоваться следующие константы:

mbOK, mbCancel, mbYes, mbNo, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp.

Четвертый параметр - это идентификатор справки для нашего окна сообщения.

Функция MessageDlg возвращает значение, которое соответствует нажатой кнопке. Вот пример:

if(mrOk == MessageDlg("Внимание!", mtInformation,

TMsgDlgButtons() <<mbOK<<mbCancel , 0))

{

//Операторы для случая OK.

}

else

{

//Операторы для случая Cancel.

}

Константы для выяснения того, на какой кнопке пользователь нажал, соответствуют константам для кнопок, только вместо префикса mb имеют префикс mr (например, вместо mbCancel - mrCancel и так далее).

Работаем с сетью. Клиент (класс tClientSocket)

В библиотеке VCL есть два компонента, предназначенных для работы с сетью на низком уровне - т. е. на уровне протоколов TCP/IP. Это компоненты ClientSocket и ClientSocket. Оба они расположены на вкладке Internet.

На этом уроке мы с вами создадим клиента. Создайте новое приложение, на форме разместите 2 кнопки, Edit и компонент ClientSocket с вкладки Internet:

Задайте для первой кнопки свойство Caption как "Соединиться", для второй - "Отправить", свойство Text для Edit1 установите в "" (пустую строку).

Программа будет работать так: сначала мы подсоединяемся к серверу, нажав на кнопку "Cоединитmся", затем вводим некоторые данные вEdit1 и отправляем их серверу, нажав на кнопку "Отправить".

Наша форма после размещения всех компонентов должна выглядеть приблизительно так:

Теперь займемся настройкой сокета. Устанавливаем для него Address в 127.0.0.1 (так как тестирование мы будем делать на локальном компьютере), порт в 2000 (тут можно поставить и любое другое число - важно только, что сервер, который мы сделаем на следующем уроке, будет слушать именно порт с этим номером).

Теперь займемся кодом для кнопок. Для кнопки с заголовком "Соединиться" пишем код соединения к серверу:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

ClientSocket1->Active = true;

}

Тут мы просто активизируем сокет, но для него уже установлены свойства Port и Address, так что мы именно по этому адресу и именно к этому порту и будем подсоединятся.

Теперь код для второй кнопки:

void __fastcall TForm1::Button2Click(TObject *Sender)

{

ClientSocket1->Socket->SendText(Edit1->Text);

}

Тут наш сокет просто посылает данные из edit'а на сервер.

С написанием клиента все!