Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Оптимизация TListView


Автор: Ak47black 1.5.2007, 16:11
Здраствуйте.
Работаю с большим списком >1000 и вместо того что-бы заполнять по стандартнуму способу TListView (что занимает очень много времени)
например так
Код

  for i:=0 to Length(МассивСтринг)-1 do
  begin
    with ListView.Items.Add do
    begin
      Caption:= МассивСтринг[i];
    end;
  end;

Поставил 
OwnerData
OwnerDraw у TListView  и 
при событии OnData делаю
Код

  Item.Caption:= МассивСтринг[Item.Index];

Проблема заключаеться в том что если я прокручиваю список например до конца ,а потом обновляю при помоши
Код

  TListView.Repaint;

То он скатываеться на начало.
Вопрос: как сделать так что-бы он не скатывался ,но в тоже время обновлялся?
Можно конечно тупо запомнить значение прокрутки, обновить и прокрутить самому, но это неособо хороший вариант.

Автор: Ak47black 1.5.2007, 19:57
Немного усложнилась проблема 
как сделать что-бы при добавлении он не съежал?
Я имею ввиду не
Код

  TListView.items.add

А когда
Код

  ListView.Items.Count:= 1000;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)