Если именно как на приведенной вами картинке то вот так:
Делаете ListView с DynamicAppearance, включаете DesingMode, добавляете необходимые поля, включая TListItemAccessory с AccessoryType=Checkmark (он и будет отображать красивые галочки). Не забудьте дать названия добавленным элементам. В моем коде TListItemAccessory называется "ShowPool"
P.S. Вариант, предложенный выше, с ListView1.EditMode := True будет выглядеть страшненько, чекбоксы не очень хорошо смотрятся в интерфейсе приложений.
procedure TFormMain.FillSettingPools;
Var I : Integer;
AItem : TListViewItem;
begin
ListViewPools.BeginUpdate;
ListViewPools.Items.Clear;
for I := 0 to FPoolList.Count-1 do
begin
AItem:=ListViewPools.Items.Add;
AItem.Data['CoinName']:=FPoolList.Items[I].CoinName;
AItem.Data['CoinDetail']:=FPoolList.Items[I].Href;
AItem.Data['ShowPool']:=FPoolList.Items[I].ShowPool;
TListItemAccessory(AItem.View.FindDrawable('ShowPool')).Visible:=FPoolList.Items[I].ShowPool; //Boolean
end;
ListViewPools.EndUpdate;
end;
procedure TFormMain.ListViewPoolsUpdateObjects(const Sender: TObject;
const AItem: TListViewItem);
Var AItemAccessory : TListItemAccessory;
begin
AItemAccessory:=TListItemAccessory(AItem.View.FindDrawable('ShowPool'));
if AItem.Data['ShowPool'].AsBoolean then
AItemAccessory.Visible:=True
Else
AItemAccessory.Visible:=False;
end;
procedure TFormMain.ListViewPoolsItemClick(const Sender: TObject;
const AItem: TListViewItem);
Var I : Integer;
S : String;
AListItemAccessory : TListItemAccessory;
APool : TPool;
AShowPool : Boolean;
begin
AListItemAccessory:=TListItemAccessory(AItem.View.FindDrawable('ShowPool'));
if AListItemAccessory<>nil then
begin
AShowPool:=AItem.Data['ShowPool'].AsBoolean;
AShowPool:=Not AShowPool;
AListItemAccessory.Visible:=AShowPool;
AItem.Data['ShowPool']:=AShowPool;
S:=AItem.Data['CoinName'].AsString;
for I := 0 to FPoolList.Count-1 do
begin
If FPoolList.Items[I].CoinName.Equals(S) Then
begin
APool:=FPoolList.Items[I];
APool.ShowPool:=AShowPool;
FPoolList.Items[I]:=APool;
Break;
end;
end;
end;
FillListViewPoolsMaster;
SavePools;
end;