2011-10-19 20 views
7

私はTGridに列(ImageColumnとStringColumn)を混在させています。私は正常に動作するonGetValueイベントを使用してそれを設定することができます。私の質問は次のとおりです:Delphi Firemonkey TGrid更新する方法

  1. グリッド全体を再構築してonGetValueイベントを引き起こす方法はありますか? 私はmonentでUpdateStyleを使用しています。

  2. グリッド内の1つのセルを更新するにはどうすればよいですか?

答えて

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; 

セルが割り当てられていません。

+0

返事、完璧な答えに感謝します。 –

2

Grid1.beginUpdate;を呼び出してGrid1.endupdate;を呼び出すと、可視グリッドが再計算されて再描画されます。

関連する問題