Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
17
Добавлен:
14.02.2015
Размер:
641.54 Кб
Скачать

Урок 15. Разные MessageBox'ы

На этом занятии мы рассмотрим два пособа вывода на экран окна сообщения - 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и так далее).

Урок 16. Компонент CheckBox

Компонент CheckBoxраспологается на вкладкеStandardПалитры компонентов:

Этот компонет предназначен для включения/выключения некоторого параметра. Например, на форме можно расположить CheckBoxдля отметки того, получены деньги за некоторый заказ или нет, или, например, для включения/выключения звуков в настройках некоторой программы.

Расположите этот компонент на форме. Для него основное свойство - это State. Именно оно и отвечает за внешний вид нашегоCheckBox'а. Это свойство может принимать одно из трех значений:cbChecked(галочка стоит),cbUnchecked(галочка не стоит) иcbGrayed(CheckBoxнаходится в неопределенном состоянии). Обратите внимение, что уCheckBox'а может быть именно три состояния. Третье состояниеCheckBoxможет иметь, например, при показе стиля выделенного текста в некотором текстовом редакторе - если часть текста, например, подчеркнута, а часть нет, то логично, чтобыCheckBoxимел стильcbGrayed. Вот так будет выглядетьCheckBoxс состояниемcbGrayed:

Если щелкать на компоненте, то он будет менять два своих состояния (с галочкой и без). Если же мы хотим, чтобы при щелчке он циклически менял три своих состояния, то необходимо установить его свойство AllowGrayedвtrue.

Состояние компонента можно получить через его свойство Checkedлогического типа. Если оно равноtrue, тоTCheckBoxотмечен, еслиfalse- то не отмечен.

За надпись, расположенную рядом с квадратиком, отвечает свойство Caption.

Основное событие для компонента CheckBox- этоOnClick. Оно, естественно, возникает при щелчке. Для добавления заготовки обработчика для этого события достаточно просто сделать наCheckBox'е двойной щелчок. Вот так, например, можно в заголовок формы вывести информацию о состоянииCheckBox'а:

void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{

if(CheckBox1->Checked)

{

Form1->Caption="cheched";

}

else

{

Form1->Caption="uncheched";

}

}