Delphi Firemonkey TGrid как обновить

У меня есть TGrid со смесью столбцов (ImageColumn и StringColumn). Я могу заполнить его, используя событие onGetValue, которое работает нормально. Мои вопросы:

  1. Как заставить всю сетку перестроиться и вызвать событие onGetValue? Я использую UpdateStyle на сайте.

  2. Как я могу обновить одну ячейку в сетке?

2 ответа

Другой вариант - позвонить Grid1.beginUpdate; внесите свои изменения и затем позвоните Grid1.endupdate; что заставит видимую сетку пересчитать и перерисовать.

Сетка обновляет только видимые ячейки! 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;

ячейка не назначается, когда строка никогда не становится видимой.

Другие вопросы по тегам