procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
begin
try
Item.Caption := 'Line ' + IntToStr(Item.Index);
Item.SubItems.Clear;
Item.SubItems.Add('2nd column');
Item.SubItems.Add('3rd column');
except
{ Ignore exceptions }
end;
end;
ただし仮想リストビューにした場合はListView_SetColumnWidthでLVSCW_AUTOSIZEやLVSCW_AUTOSIZE_USEHEADERを指定することはできません。
2008年7月27日
仮想リストビュー
ListViewはWindowsのコモンコントロールですが、表示件数が100件を超えるあたりから処理がどんどん重くなっていき、10000件あたりになるとクリアするだけでも数秒掛かるようになってしまいます。そこで表示件数が多くなることが想定される場合は仮想リストビューを使用します。といってもListItemを追加、変更、削除する代わりにOwnerDataをTrueにした状態でCountを変更するかInvalidateで表示を無効化し、OnDataイベントで渡されたListItemのCaptionおよびSubItemsを設定するだけです。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿