我使用Delphi XE7的FireMonkey TStringGrid可以容纳一百万行。用数百万个字符串填充TStringGrid的内容将消耗过多的内存。

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

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

我的应用程序旧版中的TurboPower Orpheus TOvcTable组件使用名为OnGetCellData()的钩子来完成此操作。我在FireUI的TStringGrid中看不到任何类似内容。

最佳答案

代替TStringGrid使用TGridTColumn列。然后,使用OnGetValue事件来获取要在网格中显示的值。最接近VCLTDrawGrid

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


10 mio行的网格的样本结果:

delphi - FireUI的TStringGrid-在绘制时设置值-LMLPHP

关于delphi - FireUI的TStringGrid-在绘制时设置值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36481457/

10-09 09:32