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

5. Прапорці CheckBox і CheckListBox

Індикатори з прапорцем CheckBox використовуються в основному для того, щоб користувач міг включати і вимикати якісь опції, або для індикації стану. При кожному клацанні користувача на індикаторі його стан змінюється, проходячи в загальному випадку послідовно через три значення: виділення (поява чорної галочки), проміжне (сіре вікно індикатора і сіра галочка) і не виділене (порожнє вікно індикатора). Цим трьом станам відповідають три значення властивості компоненту State: cbChecked, cbGrayed, cbUnchecked, Втім, ці три стани допускаються тільки при значенні іншої властивості AllowGrayed рівному true. Якщо ж AllowGrayed = false (значення за умовчанням), то допускається тільки два стани: виділене і не виділене. Властивості State і AllowGrayed можна встановлювати під час проектування або програмно під час виконання.

Проміжний стан використовується, якщо індикатор застосовується для відображення якоїсь характеристики об'єкту. Наприклад, якщо індикатор повинен показати, який регістр використовувався при написанні якогось фрагмента тексту, то у випадку, якщо весь текст написан у верхньому регістрі індикатор може приймати виділений стан, якщо в нижньому — не виділене, а якщо використовувалися обидва регістри — проміжне.

Перевіряти стан індикатора можна не тільки по значенню State, але і по значенню властивості Checked. Якщо Checked дорівнює true, то індикатор вибраний, тобто State = cbChecked. Якщо Checked дорівнює false, то State = cbUnchecked або cbGrayed. Установка Checked в true під час проектування або виконання автоматично перемикає State в cbChecked.

Як і в радіокнопці, в індикаторі CheckBox напис задається властивістю Caption, а її розміщення по відношенню до індикатора — властивістю Alignment.

Ще один компонент, що має індикатори — список CheckListBox. Це аналог розглянутого компоненту ListBox розглянутого раніше, але біля кожного рядка списку є прапорець - індикатор, стан якого користувач може змінювати. Стани індикаторів визначають дві властивості: State і Checked. Обидві ці властивості можна розглядати як індексовані масиви, кожен елемент якого відповідає індексу рядка. Загальна кількість елементів визначається властивістю Count (тільки для читання). Оскільки індекси починаються з 0, то індекс останнього елементу дорівнює Count - 1.

Властивості State і Checked можна встановлювати програмно або читати. Наприклад, оператори:

CheckListBox1->Checked[1]=true;

CheckListBoxl->State[2]=cbGrayed;

встановлюють індикатор другого рядка списку CheckListBox1 в стан вибраного, а індикатор третього рядка — в проміжний стан (пригадаємо, що індекси починаються з 0). Оператор:

for (int i=0; i<CheckListBox1->Items->Count;i++)

if (CheckListBoxl->Checked[i]) ...

перевіряє стан всіх індикаторів списку, і для вибраних користувачем рядків здійснює якісь дії (у приведеному операторі на місці цих дій просто поставлено багатокрапку).

У компоненті CheckListBox є також подія OnClickCheck, що виникає при кожній зміні користувачем стану індикатора. Його можна використовувати для обробки результатів зміни.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]