掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TListViewでスムーズに項目を追加するには? (ID:32047)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になってます m(__)m また1点、質問をお願いします。 ListView1 (TListView) に、1000個単位で項目を追加するときの処理なのですが、 現在、私は以下のようなコードで実現しています。 -------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var ListItems: TListItems; Aitem: TListItem; i: Integer; begin ListView1.Items.Clear; ListItems := TListItems.Create(ListView1); for i := 0 to 1000 do begin Aitem := ListItems.Add; Aitem.Caption := 'Caption1'; Aitem.SubItems.Add('SubItem1'); Aitem.SubItems.Add('SubItem2'); end; end; -------------------------------------------------- ですが、このコードを実行すると、ListViewのスクロールバーなどが忙しく動いて しまい、見栄えが悪くなってしまいます。 最初はBeginUpdate、EndUpdateを挟もうかと思ったのですが、できれば見えないと ころで一括して処理をして、 TListBox.Assign(TStringList) と同様に一括でデータを更新するような方式を考えたいのですが、どのように書けば よいのでしょうか。 ※ 少し気になったのですが、上のコードでは、ListItems.Freeがないのですが、 このコードを何度も実行するとまずいでしょうか?今までは必要がなくなったコント ロールに対しては即Freeを実行していたのですが、今回ばかりはFreeをかけると ListView1に追加した項目が消えてしまうようなのですが。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.