Компонент TCheckListBox аналогичен компоненту списка строк TListBox, за исключением того, что рядом с каждый элементом находится окно с флажком - индикатор, который пользователь может включать и выключать, помечая элементы списока.
Основное свойство компонента, содержащее список строк, - Items, имеющее тип TStrings. Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings - Clear, Add и другими.
Индекс выбранной пользователем строки определяется свойством ItemIndex, доступным только во время выполнения. Если ни одна строка не выбрана, то ItemIndex = -1. Начальное значение ItemIndex невозможно задать во время проектирования. По умолчанию ItemIndex = -1. Это означает, что ни один элемент списка не выбран. Если вы хотите задать этому свойству какое-то другое значение, т.е. установить выбор по умолчанию, который будет показан в момент начала работы приложения, то сделать это можно, например, в обработчике события OnCreate формы, введя в него оператор вида
ChecListBox1.ItemIndex:=0;
Свойство Columns определяет число столбцов, в которых будет отображаться список, если он не помещается целиком в окне компонента TCheckListBox.
Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту.
Свойство Style, установленное в lbStandard (значение по умолчанию) соответствует списку строк. Другие значения Style позволяют отображать в списке не только текст, но и изображения.
Состояния индикаторов определяют два свойства: State и Checked. Оба эти свойства можно рассматривать как индексированные массивы, каждый элемент которого соответствует индексу строки. Эти свойства можно устанавливать программно или читать, определяя установки пользователя. Например, операторы
CheckListBox1.Checked[1]:=true;
CheckListBox1.State[2]:=cbGrayed;
устанавливают индикатор второй строки списка CheckListBox1 в состояние выбранного, а индикатор третьей строки - в промежуточное состояние (вспомним, что индексы начинаются с 0).
Оператор
for i:=0 to CheckListBox1.Items.Count - 1 do
if CheckListBox1.Checked[i]
then ...
проверяет состояние всех индикаторов списка и для выбранных пользователем строк осуществляет какие-то действия (в приведенном операторе на месте этих действий просто поставлено многоточие).
В компоненте CheckListBox имеется событие OnClickCheck, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения.