- •Программирование для Windows
- •Литература
- •Вам необходимо знать и уметь
- •Первая программа
- •Соглашения операционной системы Windows
- •Вызовы функций Windows
- •Идентификаторы, написанные прописными буквами
- •Новые типы данных
- •Описатели
- •Венгерская нотация
- •Точка входа программы
- •Оконная процедура
- •Регистрация класса окна
- •Создание окна
- •Отображение окна
- •Цикл обработки сообщений
- •Оконная процедура
- •Обработка сообщений
- •Воспроизведение звукового файла
- •Сообщение wm_paint
- •Сообщение wm_destroy
- •Сложности программирования для Windows
- •Синхронные и асинхронные сообщения
- •Думайте о пользователе
- •Лекция3. Приступаем с изучению компонент
- •Урок 4. Класс tObjectи его потомки
- •Урок 5. Работа с кнопками
- •Урок 6. Компонент ActionList
- •Урок 7. Работаем с меню (класс tMainMenu)
- •Урок 8. Работаем с контекстным меню (класс tPopupMenu)
- •Урок 9. Компонент Edit
- •Урок 10. Работаем с двумя формами
- •Урок 11. Текст (компоненты tLabel и tStaticText)
- •Урок 12. Компонент ListBox
- •Урок 13. Компонент ComboBox
- •Урок 14. Используем api-функции
- •Урок 15. Разные MessageBox'ы
- •Урок 16. Компонент CheckBox
- •Урок 17. Компонент RadioButton
- •Урок 18. Класс tStrings
- •Урок 19. Класс tStringList
- •Урок 20. Работаем с сетью. Клиент (класс tClientSocket)
- •Урок 21. Работаем с сетью. Сервер (класс tServerSocket)
- •Урок 22. Компонент ImageList
- •Урок 23. Пересчитываем компоненты на форме
- •Урок 24. Форма - добавление методов
- •Урок 25. Форма - добавление полей
- •Урок 27. Значок на панели задач (компонент tTrayIcon)
- •Урок 28. Работаем со сплиттером
- •Урок 29. Компонент Panel
- •Урок 30. Совместное использование сплиттера и Panel'ей
- •Урок 31. Компонент HotKey
- •Урок 32. Компонент StatusBar
- •Урок 33. Установка главной формы приложения
- •Урок 34. Рисование на форме
Урок 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";
}
}