FireUI 的 TStringGrid - 在绘制时设置值

FireUI's TStringGrid - set the values as it paints

我对 Delphi XE7 的 FireMonkey TStringGrid 的使用使其拥有一百万行。用数百万个字符串填充 TStringGrid 的内容会消耗太多内存。

如何在绘制时设置单元格的值?

当单元格滚动到视图中时,我的代码会从一个巨大的临时文件中填充单元格的内容。

我的应用程序旧版本中的 TurboPower Orpheus TOvcTable 组件使用名为 OnGetCellData() 的挂钩执行此操作。我在 FireUI 的 TStringGrid 中没有看到类似的东西。

而不是 TStringGrid 使用 TGridTColumn 列。然后使用 OnGetValue 事件获取要在网格中显示的值。这最接近 VCLs TDrawGrid.

procedure TForm1.Grid1GetValue(Sender: TObject; const Col, Row: Integer;
  var Value: TValue);
begin
  Value := inttostr(col)+', '+inttostr(row);
end;

具有 10 mio 行的网格示例结果: