Wenn die Spalten zur Laufzeit konfiguriert werden sollen, macht es auch Sinn die dort hinzuzufügen (Columns.Add vermute ich) statt nur die Werte bestehender Spalten anzupassen. Im Moment setzt du ja nur die Werte deiner Columns[i].
Sprich ohne es ausprobiert zu haben würde ich vermuten:
Delphi-Quellcode:
var
NewColumn: TSMDBColumn;
begin
SMDBGrid1.Columns.Clear;
NewColumn := SMDBGrid1.Columns.Add;
NewColumn.FieldName := 'name';
NewColumn.Title.Caption := 'Name';
NewColumn.Font.Style := [fsBold];
NewColumn.Font.Color := $00FF2A2F;
NewColumn.Width := 35;
NewColumn.Alignment := taCenter;
NewColumn.ReadOnly := true;
NewColumn := SMDBGrid1.Columns.Add;
...