我使用Delphi XE7的FireMonkey TStringGrid可以容纳一百万行。用数百万个字符串填充TStringGrid的内容将消耗过多的内存。
在绘制单元格时如何设置它们的值?
当单元格滚动到视图中时,我的代码将从一个巨大的临时文件中填充单元格的内容。
我的应用程序旧版中的TurboPower Orpheus TOvcTable组件使用名为OnGetCellData()的钩子来完成此操作。我在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/