100 компонентів Delphi CheckBox та CheckListBox
Індикатори з прапорцемCheckBox(див. рис. 5.1 розділу 5.1) використовуються в додатках в основному для того, щоб користувач міг включати та вимикати якісь опції, або для індикації стану. При кожному натисканні користувача на індикаторі його стан змінюється, проходячи в загальному випадку послідовно через три значення: виділення (поява чорної галочки), проміжне (сіре вікно індикатора та сіра галочка) і не виділене (порожнє вікно індикатора). Цим трьом станам відповідають три значення властивості компонента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. Це аналог розглянутого розділу 3.3.5 компонентаListBox, але біля кожного рядка списку є індикатор, стан якого користувач може змінювати. Ви можете побачити, як виглядає списокCheckListBox, на рис. 3.10 у розділі 3.3.5 (компонент розташований на малюнку у центрі внизу).
У компонентіCheckListBoxє також подіяOnClickCheck, що виникає при кожній зміні користувачем стану індикатора. Його можна використовувати для обробки результатів зміни.