ListViewに高速表示するには?


どんこ  2006-06-05 19:44:51  No: 22039  IP: 192.*.*.*

TListViewでCSVファイルを高速に表示したいのですが、
どうすればよいのでしょうか。
(TRichEditの場合はTMemoryStreamにデータを書き込んでから
LoadFromStreamで高速に表示できるようですが、同じように
できないのでしょうか?)
ファイルはCSVファイルになっていて、X=66,Y=3500です。
TStringListで読込んでListViewに表示しようとしているのですが、
以下のプログラムでは非常に時間がかかっています。

以下、プログラム(FData,TempList は TStringList です)

FData.LoadFromFile(FileName);
for i := 1 to FData.Count do begin
  TempList.Text := AnsiReplaceText(FData.Strings[i - 1], ',', #13#10);
  ListItem := ListView.Items.Add;
  ListItem.Caption  := TempList.Strings[0];
  TempList.Delete(0);
  LIstItem.SubItems.Text := TempList.Text;
end;

編集 削除
所要時間  2006-06-05 19:53:46  No: 22040  IP: 192.*.*.*

>以下のプログラムでは非常に時間がかかっています。
所要時間はいかほど?

編集 削除
カレーライズ  2006-06-05 23:24:04  No: 22041  IP: 192.*.*.*

ListViewっていうのは 項目を追加するときに再描画などが走ってしまいどうしても  遅くなってしまいます。なので

  FData.LoadFromFile(FileName);
  ListItem.BeginUpdate();        ・・・。
  for i := 1 to FData.Count do begin
      ・・・・
  end;
  ListItem.EndUpdate();          ・・・「
  
  上記のi) ii)を追加すれば再描画が制限されて処理時間が短縮されると思いますよ。  それにしても  66*3500っていう時点で時間がかかる当たり前だと思いますがね・・・・もし上記の方法でうまくいったなら  どれくらい速くなったのかを教えて頂きたいものですm(_ _)m

編集 削除
カレーライズ  2006-06-05 23:29:53  No: 22042  IP: 192.*.*.*

文字化けしてすいません。プログラム部分は以下の通りです

  FData.LoadFromFile(FileName);
  ListItem.BeginUpdate();        ・・・i) 
  for i := 1 to FData.Count do begin
      ・・・・
  end;
  ListItem.EndUpdate();          ・・・ii)

編集 削除