Добрый день! Поясните, пожалуйста, 3000 р. стоит документ об окончании курса. Если он не нужен, то можно учиться бесплатно? |
Подробности об элементах управления
4.9. OptionButton
04-06-Рамки и радиокнопки.docm — пример к пп. 4.9. – 4.10.
OptionButton — радиокнопка. Не удивляйтесь такому названию. Оно отражает особенности этого элемента управления. Радиокнопки обычно используются группами, а в группе может быть выбрана лишь одна кнопка. Это напоминает выбор одной радиостанции с помощью одной из кнопок на радиоприемнике.
Основное свойство радиокнопки — это Value (Значение) — если оно равно False (Ложь) — радиокнопка не выбрана, если True (Истина) — выбрана. Свойство TripleState позволяет присваивать элементу управления параметр Null, который, как в случае с флажками, блокирует элемент.
Все радиокнопки, расположенные на одной форме, автоматически объединяются в одну группу. Поэтому из всех этих кнопок выбрана может быть лишь одна. Как же быть, если на форме надо расположить несколько групп таких кнопок? Ответ на этот вопрос кроется в использовании так называемых фреймов или рамок (элемент управления Frame ). Радиокнопки, размещенные в пределах рамки, обрабатываются отдельно от кнопок на других рамках или на формах.
4.10. Frame
Frame — рамка. Рамки обычно используют для группировки объектов. Например, на форме может быть расположено несколько групп элементов управления, выполняющих различные функции. Логично будет сгруппировать их с помощью рамок. Для этого нужно создать на форме рамку и перетащить на нее остальные элементы управления. Как правило, рамкам не назначают обработчики событий, используя их как контейнеры для других объектов.
Если вы хотите обратиться к элементу управления, который расположен на рамке, используйте такой же синтаксис, как и для доступа к объекту, расположенному на форме.
Давайте рассмотрим пример совместного использования рамок и радиокнопок. Предположим, нам нужно спроектировать интерфейс для настройки сохранения файлов из программы. В интерфейс должны входить три группы параметров – для выбора формата сохраняемого файла, для управления именованием файла (вручную или автоматически), и местом сохранения (так же вручную или автоматически).
Создадим форму frm_First и добавим на нее две рамки — fra_First и fra_Second. Добавим две радиокнопки на форму (назовем их opt_1 и opt_2 ). Так же добавим по две радиокнопки в каждую из рамок. В рамку fra_First добавим кнопки opt_3 и opt_4, а в fra_Second — opt_5 и opt_6. Установим параметр TripleState равным True для всех радиокнопок. Подпишем радиокнопки и рамки так, как указано в табл. 4.2.
Имя элемента управления | Свойство Caption | Value |
---|---|---|
Fra_First | Имена файлов | |
Fra_Second | Место сохранения файлов | |
opt_1 | Сохранить в TXT-файл | True |
opt_2 | Сохранить в DOCX-файл | False |
opt_3 | Автоматически | True |
opt_4 | Задать вручную | False |
opt_5 | Автоматически | True |
opt_6 | Задать вручную | False |
Добавим на форму кнопку, назовем ее cmd_SetAuto и подпишем: "Автоматически", добавим еще одну кнопку – cmd_SetManual и подпишем ее "Вручную". Теперь создадим обработчики событий Click для кнопок.
Кнопка cmd_SetAuto устанавливает радиокнопки с надписью "Автоматически" (листинг 4.5)
opt_3.Value = True opt_5.Value = TrueЛистинг 4.5. Обработчик события Click для cmd_SetAuto
Кнопка cmd_SetManual устанавливает радиокнопки с надписью "Вручную" (листинг 4.6)
opt_4.Value = True opt_6.Value = TrueЛистинг 4.6. Обработчик события Click для cmd_SetManual
На рис. 4.8. вы можете видеть форму этого примера. Поэкспериментируйте с ней — убедитесь, что группы радиокнопок, расположенных в различных рамках, действуют независимо друг от друга.
4.11. ToggleButton
ToggleButton — выключатель. Это кнопка, которая может существовать в двух состояниях — включенном и выключенном. По действию она напоминает флажок, и обычно используется точно так же.
Если кнопка находится во включенном состоянии — это может означать включение какой-либо опции, если в выключенном — выключение. Основное свойство такой кнопки — Value (Значение). Оно установлено в False (Ложь), когда кнопка находится в обычном состоянии, и в True (Истина), когда кнопка нажата.
При изменении состояния кнопки генерируется событие Change (Изменение) — его можно использовать для проверки установленного значения и проведения каких-либо действий.
На рис. 4.9. вы можете видеть форму с размещенными на ней выключателями. Один из них включен, другой – выключен.
4.12. ScrollBar
04-07-Полоса прокрутки.docm — пример к п. 4.12.
ScrollBar — полоса прокрутки. Используется для плавного изменения каких-либо значений. Например, это может быть выбор параметра из диапазона значений. При настройке этого элемента управления следует учесть, что для его нормальной работы надо установить следующие свойства:
- Max (Максимум) — максимальное значение полосы.
- Min (Минимум) — минимальное значение полосы
- Small Change (Маленькое изменение) — шаг, с которым изменяется значение полосы при прокрутке с помощью кнопок.
- Large Change (Большое изменение) — шаг, с которым меняется значение при перетаскивании бегунка полосы с помощью мыши.
- Узнать текущее значение полосы можно, воспользовавшись ее свойством Value (Значение).
При изменении значения полосы прокрутки генерируется событие Change (Изменение). Оно происходит после каждого изменения значения полосы. Если вы перетаскиваете бегунок с помощью мыши, новое значение полосы прокрутки будет сгенерировано лишь тогда, когда вы отпустите кнопку мыши. Для того чтобы непрерывно изменять значение полосы вслед за перетаскиванием бегунка вручную, воспользуйтесь обработчиком события Scroll (Прокрутка).
Расположение кнопок (горизонтальное или вертикальное) выбирается автоматически в зависимости от ширины и высоты полосы прокрутки.
Давайте рассмотрим пример, иллюстрирующий возможности элемента управления ScrollBar и разницу между событиями Change и Scroll. Создадим форму, добавим на нее полосу прокрутки с именем scr_First, оставим ее параметры равными по умолчанию, и две надписи – lbl_Change и lbl_Scroll. Они будут содержать информацию о значении полосы прокрутки, но lbl_Change будет обновляться по событию полосы прокрутки Change (листинг 4.7), а lbl_Scroll — по событию Scroll (листинг 4.8).
lbl_Change.Caption = scr_First.ValueЛистинг 4.7. Обработчик события Change для scr_First
lbl_Scroll.Caption = scr_First.ValueЛистинг 4.8. Обработчик события Scroll для scr_First
На рис. 4.10. вы можете видеть форму нашего примера в момент перетаскивания бегунка вручную.
До тех пор, пока мы не отпустили левую кнопку мыши, при каждом перемещении бегунка вручную будет генерироваться событие Scroll — значение в надписи lbl_Scroll будет меняться при перемещении бегунка. А вот значение в поле lbl_Change, которое обновляется по событию Change, изменится лишь тогда, когда мы отпустим кнопку мыши. В то же время, изменяя значение полосы прокрутки с помощью кнопок прокрутки, мы можем наблюдать лишь изменения поля lbl_Change так как нажатия на эти кнопки генерируют событие Change. А вот поле lbl_Scroll при использовании кнопок обновляться не будет – событие Scroll не генерируется.