TRxCheckListBox Component

Unit
RxCtrls

Description
Как и TListBox, компонента предназначена для хранения и отображения списка строк, и имеет дополнительную возможность помечать каждую строку в списке, что отражается свойствами Checked и State. Строка в списке может быть помечена как активная через индексированное свойство EnabledItem, что даст возможность изменения свойства Checked пользователем мышью во время выполнения программы.

Для отметки строк в списке могут быть использованы как изображения, используемые в check-boxes, так и изображения radio-buttons, в зависимости от значения свойства CheckKind. Во втором случае одновременно может быть помечен только один элемент в списке (как в TRadioGroup).
Доступны все свойства и методы компонент TListBox, TTextListBox.

При свойстве AutoScroll=True происходит автоматическая установка горизонтальной полосы скроллинга списка по максимальной длине строки. Если при этом список имеет стиль lbOwnerDrawVariable или lbOwnerDraFixed, то Вы можете задать диапазон скроллинга через обработчик события OnGetItemWidth.



Примеры работы и некоторые интересные свойства и методы.

Declaration
property Checked[Index: Integer]: Boolean;

Description
Индексированное свойство Checked предназначено для хранения отметок о "помеченности" строк Items. В режиме дизайна формы это свойство доступно через редактор свойства Items.



Declaration
property State[Index: Integer]: TCheckBoxState;

Description
Свойство аналогично по действию свойству State компоненты TCheckBox и имеет смысл для конкретного элемента в списке.
При значении свойства CheckKind = ckRadioButtons только один элемент в списке может быть отмеченным (иметь состояние cbChecked).



Declaration
property EnabledItem[Index: Integer]: Boolean;

Description
Индексированное свойство EnabledItem предназначено для хранения отметок об активности (разрешенности) строк Items. В режиме дизайна формы это свойство доступно через редактор свойства Items.



Declaration
property CheckKind: TCheckKind;

Description
Определяет вид изображений, отображающих пометку элемента в списке и поведение списка TRxCheckListBox.
Изображения могут быть теми же, что используется в Check-Boxes (в этом случае может быть помечено сколько угодно строк списка) или же теми, что используются в Radio-Buttons (при этом может быть помечен только один элемент списка). При значении свойства ckRadioButtons номер отмеченного элемента в списке задается свойством CheckedIndex.



Declaration
property CheckedIndex: Integer;

Description
Свойство имеет смысл только при значении свойства CheckKind = ckRadioButtons и определяет номер отмеченного элемента в списке.



Declaration
property AutoScroll: Boolean;

Description
Свойство определяет, будет ли автоматически появляться горизонтальная полоса скроллинга в компоненте TRxCheckListBox при длинах строк, превышающих ширину компоненты. По умолчанию True.



Declaration
property OnGetItemWidth: TGetItemWidthEvent;

Description
Событие вызывается при стиле lbOwnerDrawVariable или lbOwnerDraFixed и установленном в True значении свойства AutoScroll для определения диапазона горизонтального скроллинга компоненты TRxCheckListBox. В обработчике события Вы можете задать соотвествующую ширину, присвоив значение параметру Width.