Mam's WebSite
建築CGパース住宅CGパース

Mamの覚書Q&A検索

トップページMamの覚書Q&A検索Delphi(コンポーネント)⇒Q&A


大項目:「 Delphi 」 - 中項目:「 コンポーネント 」

「 TStringGridの更新速度を速くするには 」

TStringGridに大量のデータを表示させたいので遅いのですが、TStringGridにはBeginUpdateやEndUpdateはありません。しかしながら、Rows又はColsのBeginUpdateやEndUpdateを使えば良いと聞いて
 
  StringGrid1.Cols[0].BeginUpdate;
  for i:=1 to 20000 do
    StringGrid1.Celld[i,0];
  StringGrid1.Cols[0].EndUpdate;
 
のようにプログラムを行ったのですが、やはり速くありません。
どうすれば良いでしょうか。


回答

Delphiのバージョンにも依存すると思うのですが、私の持っているDelphi2006ProfessionalではRows又はColsのBeginUpdateやEndUpdateを使っても速くなりませんでした。しかしながら、速度を上げる方法は他にもあります。可能であれば、VisibleプロパティをFalseにしてから、セルに値を入れ、VisibleプロパティをTrueにすれば速くなる場合があります。

ソース

  StringGrid1.Visible:=False;
  for i:=1 to 20000 do
    StringGrid1.Celld[i,0];
  StringGrid1.Visible:=True;


Mam's WebSite