我对 Delphi XE7 的 FireMonkey TStringGrid 的使用让它拥有一百万行。用数百万个字符串填充 TStringGrid 的内容会消耗太多内存。
在绘制单元格时如何设置它们的值?
当单元格滚动到 View 中时,我的代码将从一个巨大的临时文件中填充单元格的内容。
我的应用程序的旧版本中的 TurboPower Orpheus TOvcTable 组件使用称为 OnGetCellData() 的 Hook 来完成此操作。我在 FireUI 的 TStringGrid 中没有看到类似的东西。
最佳答案
而不是 TStringGrid
使用 TGrid
与 TColumn
列。然后使用 OnGetValue
事件以获取值以在网格中显示。这是最接近 VCL
小号 TDrawGrid
.
procedure TForm1.Grid1GetValue(Sender: TObject; const Col, Row: Integer;
var Value: TValue);
begin
Value := inttostr(col)+', '+inttostr(row);
end;
具有 10 个 mio 行的网格的示例结果:
关于delphi - FireUI 的 TStringGrid - 在绘制时设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481457/