列 (ImageColumn と StringColumn) が混在する TGrid があります。正常に動作する onGetValue イベントを使用してデータを入力できます。私の質問は次のとおりです。
グリッド全体を強制的に再構築して onGetValue イベントを発生させる方法は? 私は現在 UpdateStyle を使用しています。
グリッド内の単一のセルを更新するにはどうすればよいですか?
列 (ImageColumn と StringColumn) が混在する TGrid があります。正常に動作する onGetValue イベントを使用してデータを入力できます。私の質問は次のとおりです。
グリッド全体を強制的に再構築して onGetValue イベントを発生させる方法は? 私は現在 UpdateStyle を使用しています。
グリッド内の単一のセルを更新するにはどうすればよいですか?
グリッドは表示されているセルのみを更新します!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 つのオプションはGrid1.beginUpdate;
、変更を行ってから呼び出してGrid1.endupdate;
、表示されているグリッドを再計算して再描画することです。