Using Delphi 11.1 the application is of the FMX (Fire Monkey) type. I have a TStringgrid with a CheckColumn. The grid does not show the checkbox. If I click two times on the cell the state changes and the the box is shown, after that it behaves normally. I set the value of a cell in code like StringGrid1.Cells[CHECKBOX_COLUMN, iIndex]:= BoolToStr(False); Reading like boMyBoolean := StringGrid1.Cells[CHECKBOX_COLUMN, 0].ToBoolean; Help is very much appreciated.
CodePudding user response:
BoolToStr has two arguments:
function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
If you call it with UseBoolStrs = True
then the StringGrid
reacts as you expect:
E.g. during FormCreate
:
procedure TForm5.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0, 1] := BoolToStr(False, True);
StringGrid1.Cells[1, 1] := BoolToStr(False, True);
end;
where the first column is a TCheckColumn
and the second column is a TStringColumn
shows
And reacts as you expect it to, to subsequent changes.