Компонент Delphi – CheckListBox

Компонент Delphi CheckListBox находиться на странице Additional Палитры компонентов. Он имеет много общего с компонентом ListBox и основные их свойства   совпадают. Главное отличие его состоит в наличии значка для выбора, где можно поставить галочку, слева от элемента списка.

Данный компонент предназначен для множественного выбора элементов, т.е. мы можем выбрать все элементы списка или не одного, как нам необходимо. Поэтому свойства MultiSelect у него нет.

На основе свойства Selected происходит анализ состояния элементов в списке. Это свойство указывает не состояние расположенных слева переключателей, а номер элемента, в текущий момент находящийся в активном состоянии.

А положения переключателей определяют два свойства:  Checked и State. Эти два свойства можно представить как индексированные массивы, элементы которых соответствуют индексу строк. Установить их программно таким образом:

CheckListBox1.Checked[5] := true;
CheckListBox1.State[1] := cbGrayed;

Свойство AllowGrayed, будучи установленным в TRUE, дает возможность воспользоваться третьим промежуточным состоянием.

компонент CheckListBox

Разместим на форме компонент CheckListBox, как показано на рисунке. Зададим список Items, воспользовавшись инспектором объектов. Под ним расположим memo, в нем будут выводиться выбранные нами элементы. И еще две кнопки.

Первая с именем Selected будет выводить выделенный синим активный элемент, а вторая - Cheched будет выводить помеченные галочкой элементы.

Обработчики событий этих кнопок будут такие: для Selected -

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   I : integer;
begin
   Memo1.Clear;
   for I := 0 to CheckListBox1.Items.Count -1 do
   begin
    if CheckListBox1.selected[i] then
    Memo1.Lines.Add(CheckListBox1.Items[i]);
   end;
end;

Для Checked -

procedure TForm1.BitBtn2Click(Sender: TObject);
var
   I : integer;
begin
   Memo1.Clear;
   for I := 0 to CheckListBox1.Items.Count -1 do
   begin
    if CheckListBox1.Checked[i] then
    Memo1.Lines.Add(CheckListBox1.Items[i]);
   end;
end;

Итог: был рассмотрен компонент Delphi  CheckListBox его применение в программах.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *