请教DELPHI在FireMonkey下TGRID格式化数据问题

请教一个DELPHI在FireMonkey下的问题:

在FMX中使用TGRID控件显示数据,如何将数据进行格式化呢

OnGetValue 事件里,处理最终要显示的数据,举个栗子:

procedure TForm1.Grid1GetValue(Sender: TObject; const Col, Row: Integer;
  var Value: TValue);
begin
  // 获取数据
  Value := MyData[Col, Row];

  // 如果是数值类型,则进行格式化
  if Value.IsType<Double> then
    Value := FormatFloat('#,##0.00', Value.AsExtended);
end;

在FireMonkey中使用TGrid显示数据时,可以使用TColumn组件的OnGetCellText事件来对显示的数据进行格式化。

OnGetCellText事件会在每个单元格需要显示数据时触发,可以在事件处理程序中对数据进行格式化,并将格式化后的结果设置为Value参数的值。例如,下面的代码将显示的数字格式化为货币格式:

procedure TForm1.Grid1Column1GetCellText(Sender: TObject; const ARow, ACol: Integer; var Value: string);
begin
  if ACol = 1 then
  begin
    Value := FormatFloat('#,##0.00', StrToFloat(Value));
  end;
end;

在这个例子中,Grid1TGrid控件的实例,Grid1Column1TGrid中的一个列组件。在Grid1Column1GetCellText事件中,我们首先判断当前单元格所在的列是否是第二列(即ACol=1),如果是,则将Value参数解析为浮点数,然后使用FormatFloat函数对其进行格式化,并将格式化后的结果设置为Value参数的值。

你可以根据需要进行格式化,例如将日期格式化为指定的格式,将数字格式化为百分比等等。