问题描述
Delphi 10.4.2,TTMSFNCGrid 版本。 1.0.5.16
我正在将大约 30,000 条记录从数据库下载到一个 json 对象中。这大约需要 1 分钟。
然后我尝试将数据输入(循环)到 TTMSFNCGrid 中,它有大约 30,000 条记录和 16 列。数据输入需要 20 分钟!这是渲染和填充网格所需的时间。我怎样才能加快这个过程?
我使用这样的东西
for _i:= 0 to JSON_ARRAY_DANE.Count-1 do
begin
_row:= JSON_ARRAY_DANE.Items[_i] as TJSONObject;
_grid.Cells[0,_i+1]:=_row.GetValue('c1').Value;
_grid.Cells[1,_i+1]:=_row.GetValue('c2').Value;
_grid.Cells[2,_i+1]:=_row.GetValue('c3').Value;
.
.
_grid.Cells[2,_i+1]:=_row.GetValue('c16').Value;
end
解决方法
已解决。 需要补充:
_grid.BeginUpdate; _grid.EndUpdate;
**_grid.BeginUpdate;**
for _i:= 0 to JSON_ARRAY_DANE.Count-1 do
begin
_row:= JSON_ARRAY_DANE.Items[_i] as TJSONObject;
_grid.Cells[0,_i+1]:=_row.GetValue('c1').Value;
_grid.Cells[1,_i+1]:=_row.GetValue('c2').Value;
_grid.Cells[2,_i+1]:=_row.GetValue('c3').Value;
.
.
_grid.Cells[16,_i+1]:=_row.GetValue('c16').Value;
end;
**_grid.EndUpdate;**