我有一个混合列的TGrid(ImageColumn和StringColumn)。我可以使用onGetValue事件填充它,它可以正常工作。我的问题是:
如何强制整个网格重建并导致onGetValue事件? 我正在使用UpdateStyle。
如何更新网格中的单个单元格?
答案 0 :(得分:5)
网格仅更新可见单元格! Grid1.UpdateStyle
强制网格重建并导致onGetValue
事件,但速度很慢。 Grid1.ReAlign
要快得多。
只要细胞可见,它们就会更新。
更新1个单元格:
procedure TForm1.UpdateCell(col, row: integer);
var
cell: TStyledControl;
begin
cell := Grid1.Columns[col].CellControlByRow(row);
if Assigned(cell) then
cell.Data := 'Note: use the same datasource as OnGetValue';
end;
当行永远不可见时,单元格未被分配。
答案 1 :(得分:3)
另一种选择是调用Grid1.beginUpdate;
进行更改,然后调用Grid1.endupdate;
,这将导致可见网格重新计算并重新绘制。