Ich habe bei mir relativ viel der Formatierungen in GetCellLayout ausgelagert, dort funktioniert es dann. Dort würde ich z.B. die Schriftgröße setzen. Wobei die Spaltenbreite mit grid.ColumnWidths[x]:=x zuverlässig zugewiesen werden kann. Man muss nur aufpassen, wenn man Spalten versteckt, dann kommt es manchmal durcheinander.
Delphi-Quellcode:
procedure TicTrainerF.sgTrainingLapsGetCellLayout(Sender: TObject; ACol, ARow: Integer; ALayout: TTMSFMXGridCellLayout; ACellState: TCellState);
begin
ALayout.StrokeThickness:=1;
ALayout.Stroke.Color:=$FF171717;//TAlphaColors.Black;
if (ACellState <> csNormal) then
begin
ALayout.FontFill.Color:=gridHeaderFontColor;
ALayout.Fill.Color:=gridSelectionColor;
ALayout.Fill.Gradient.Color:=gridHeaderColor;
ALayout.Fill.Gradient.Color1:=gridHeaderColor1;
exit;
end;
ALayout.FontFill.Color:=gridFontColor;
if (ARow mod 2 = 0) then
ALayout.Fill.color:=gridAlternateColor
else
ALayout.Fill.color:=gridStandardColor;
end;