var i:integer;
begin
    for I := 0 to CheckListBox1.Count -1 do
     if CheckListBox1.Checked[i]                 // 左边的 Check框 是否 勾中
     then  showmessage(CheckListBox1.Items[i] )  // 右边的 文本
end; 

允许用户将复选框设置为灰显状态,增加 一个cbGrayed显示状态 

  CheckListBox1.State[0]:= cbGrayed;
  CheckListBox1.State[1]:= cbChecked;
  CheckListBox1.State[2]:= cbUnchecked;

var i:integer;
begin
    for I := 0 to CheckListBox1.Count -1 do
      if CheckListBox1.Selected[i] then  //Selected表示 右边 蓝色 项
        showmessage(CheckListBox1.Items[i] )
end

//删除高亮选中的项目,(只管高亮选中就会被删除,和checked是否无关)

 CheckListBox1.DeleteSelected;//删除选中项目,即使该给项目 没勾上也会被删除

//全选 高亮选中Selected 

 CheckListBox1.MultiSelect := True; CheckListBox1.SelectAll;

//让第n行被高亮选中
CheckListBox1.Selected[1]:=true;//第2行

//取消高亮选中
CheckListBox1.ClearSelection;


 CheckListBox如何设置行高?

默认设置是 lbStandard 或者 lbOwnerDrawVariable 会忽略你的行高设置值的
改为lbOwnerDrawFixed 属性即可


全部Check    https://docwiki.embarcadero.com/CodeExamples/Sydney/en/CheckListBoxCheckAll_(Delphi)

CheckListBox1.CheckAll(cbChecked, false, true);
//全选 Checked All
procedure TForm1.Button11Click(Sender: TObject);
var i :integer;
begin
for i := 0 to CheckListBox1.Items.Count - 1 do 
 CheckListBox1.Checked[i] := True;//反选设置为False   
end;

全部unCheck

CheckListBox.CheckAll(cbUnchecked, true, false);

 分几列显示

删除用

CheckListBox1.Items.Delete(Index);

上下移动交换用

CheckListBox1.Items.Move(CurrentIndex,NewIndex);

CheckListBox1.Items.Move(1,2);

 

//在项目中添加字符串(子项目的最后一位接着添加) 

 CheckListBox1.Items.Add(edit1.Text); 

//在指定位置插入项

CheckListBox1.Items.Insert(0,'0Inseret');

//第3行的项目灰色不可用

CheckListBox1.ItemEnabled[2] := False;//True可用 

//删除已勾选的中项目

procedure TForm1.Button5Click(Sender: TObject);
var i : integer;
begin
for i := CheckListBox1.Items.Count-1 downto 0 do //从后面往前面删
  if CheckListBox1.Checked[i] then 
     CheckListBox1.Items.Delete(i);  
end;

//清空项目

CheckListBox1.Items.Clear;

//将CheckListBox1的全部添加到CheckListBox2的Items中 

var i:Integer;
begin
   CheckListBox2.Items.Clear;
   for i := 0 to  CheckListBox1.Items.Count - 1 do
      CheckListBox2.Items.Add(CheckListBox1.Items[i]);
end;