Begin DateEdit.Visible := false; CheckBox1.Visible := false; if (gdFocused in State) then

begin
if ACol=1 then

begin
DateEdit.Text:=StringGrid1.Cells[ACol, ARow];
DateEdit.Left := Rect.Left + StringGrid1.Left+2;
DateEdit.Top := Rect.Top + StringGrid1.top+2;
DateEdit.Width := Rect.Right -Rect.Left;
DateEdit.Height := Rect.Bottom - Rect.Top;
DateEdit.Visible := True;
exit;

end;

if ACol=4 then
begin
CheckBox1.Caption:=StringGrid1.Cells[ACol, ARow];

if CheckBox1.Caption='.aiao' then
CheckBox1.Checked:=true
else
CheckBox1.Checked:=false;

CheckBox1.Left := Rect.Left + StringGrid1.Left+2;
CheckBox1.Top := Rect.Top + StringGrid1.top+2;
CheckBox1.Width := Rect.Right - Rect.Left;
CheckBox1.Height := Rect.Bottom - Rect.Top;
CheckBox1.Visible := True;
exit;

end; end; end;

Ну и конечно же поймать событие OnClick компонента CheckBox1, чтобы записать изменённое значение обратно в сетку: