Firemonkey Grid Control: diseño de una celda en función de un valor (a través de la llamada a la función OnGetValue)

Estoy buscando una solución recomendada para diseñar una celda TGrid que está siendo dibujada por la llamada OnGetValue (que se llama para pintar las celdas a la vista). Para el fondo, una excelente respuesta de Mike, mostró cómo simplemente aplicar una propiedad tAlign cuando se crea la celda; pero mi próximo desafío es colorear el contenido de la celda.

Publicación anterior / respuesta

El objetivo es cambiar los atributos de la celda (Fuente, estilo, color, etc.) del valor que estoy a punto de devolver como la celda "Valor". En el siguiente ejemplo; estaría aplicando un estilo al "valor" OnGetValue que se devuelve. Bien puede ser que tengamos que hacer esto a través de una hoja de estilo FM; o podemos acceder directamente a los atributos de TText? Idealmente, ambos escenarios serían geniales, pero en esta etapa tomaré cualquiera de las soluciones ... (; ->

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.Grid,
  FMX.Layouts, FMX.Edit;

type
  TForm1 = class(TForm)
    Grid1: TGrid;
    Button1: TButton;
    StyleBook1: TStyleBook;
    procedure Grid1GetValue(Sender: TObject; const Col, Row: Integer;
      var Value: Variant);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TStringColNum = class(TStringColumn)
  private
    function CreateCellControl: TStyledControl; override;
  published
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

function TStringColNum.CreateCellControl: TStyledControl;
begin
  Result:=TTextCell.Create(Self);
  TTextCell(Result).TextAlign := TTextAlign.taTrailing;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Grid1.AddObject(TStringColumn.Create(Self));
  Grid1.AddObject(TStringColNum.Create(Self)); // Right Aligned column?

  Grid1.RowCount:=5000;
  Grid1.ShowScrollBars:=True;
end;

procedure TForm1.Grid1GetValue(Sender: TObject; const Col, Row: Integer;
  var Value: Variant);
begin
  if Col=0 then
    Value:='Row '+IntToStr(Row);

  if Col=1 then
    Value := 'Row '+IntToStr(Row);

// Apply style based on value ?

end;

end.

Muchas gracias de antemano, Ian.