Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

TCheckBox в TDBGrid

01.01.2007
procedure DrawGridCheckBox(Canvas: TCanvas; Rect: TRect; Checked: boolean);
var
 
DrawFlags: Integer;
begin
 
Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, ' ');
 
DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONPUSH or DFCS_ADJUSTRECT);
 
DrawFlags := DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;// DFCS_BUTTONCHECK
 
if Checked then
   
DrawFlags := DrawFlags or DFCS_CHECKED;
 
DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DrawFlags);
end;

На событие OnDrawColumnCell повесьте вызов процедуры DrawGridCheckBox():

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 
if Column.FieldName = 'WEIGHT' then // Модифицируйте под себя
   
if Column.Field.AsInteger > 10 then
     
DrawGridCheckBox(DBGrid1.Canvas, Rect, true)
   
else
     
DrawGridCheckBox(DBGrid1.Canvas, Rect, false)
end;

Кроме этого, для скрытия текста в ячейках с CheckBox-ом от отображения значения при вводе с клавиатуры определите реакцию на событие OnColumnEnter:

procedure TfrmMain.DBGrid1ColEnter(Sender: TObject);
begin
 
with TDBGrid(Sender) do
   
if SelectedField.FieldName = 'Weight' then // Модифицируйте под себя
     
Options := Options - [dgEditing]
   
else
     
Options := Options + [dgEditing]
end;

Взято с https://delphiworld.narod.ru