Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в TListView отобразить больше 32000 записей [D6]


leonidus ©   (2006-04-26 11:31:00) 

Есть компонент TListView в котрый загружается список слов, список может быть очень большим >100.000 слов, т.е. соответственно >100.000 итемов в TListView, так вот выяснилось что Win98 не поддерживает такое кол-во итемов, поэтому сейчас я делаю так:

dict_in:=tstringlist.Create;
ListView1.OwnerData:=false;
dict_in.loadfromfile(...)
ListView1.OwnerData:=true;

и дальше в обработчике ListView1Data загружаю ListView:

procedure TForm2.ListView1Data(Sender: TObject; Item: TListItem);
begin
Item.Caption := dict_in[Item.Index];
end;

и все бы хорошо, да вот только работа все это медленно, пока создасться  stringlist пока загрузитсявсе это дело в ListView, а потом когда окно закрывается, я пишу:
ListView1.OwnerData:=false;
dict_in.free

и тут приходится еще прилично ждать. В общем все этот как-то криво, может есть другой способ, или компонент какой нибудь?


MegaVolt   (2006-04-28 17:38:00) [1]

100 тыс записей видать это максимальное значение.
А если это результаты поиска. На каком числе ограничится? 5, 50, 500, 5000, ... Вот например результаты поиска mp3 по моей локалке: 20000 файлов. Ну хочется пусть ищет. Ведь это совершенно немного. Даже если название файла 100 байт то это всего 20 метров информации. Запросто показывается и прокручивается без малейших тормозов.


Jeer   (2006-04-28 16:05:00) [2]

leonidus ©   (26.04.06 14:43) [4]

Задай себе вопрос "А на фiга пользователю предоставлять за раз 100 тыс записей ?"

Очередные грабли искаешь ?
Ну-ну, вперед.


MegaVolt   (2006-04-28 12:31:00) [3]

Что именно у тебя медленно.
Сама загрузка или потом прокрутка и показ элементов?
Если всё сделал правильно то тормозить должна только загрузка.


Игорь Шевченко   (2006-04-27 10:43:00) [4]

leonidus ©   (26.04.06 14:25) [2]


> Блин, че-то там совсем как-то заморочено, можно чтонибудь
> попроще?


Можно. Купи книжку по программированию для начинающих.


atruhin   (2006-04-27 04:13:00) [5]


> ListView смотрится очень хорошо и меня в нем все устраивает

1. DBGrid смотрится не хуже, я бы сказал что также:)
2. ListView предназначен для отображения данных пользователю, НЕ ДЛЯ ХРАНЕНИЯ. Зачем пользователю показывать все 100000 записей, когда он их прочитает?
3. При таком объеме это задача для БД, они для того и созданы.


ЮЮ   (2006-04-27 03:50:00) [6]

>пока создасться  stringlist  
 так долго? :)
>пока загрузитсявсе это дело в ListView
 в ListView это не грузится, а только рисуется, значит и видеокарта слабая

 а в ListView.Items  это грузится как-то иначе?  Твой Win98, наверняка, не отличается большим объемом памяти, куда, собственно и грузятся твои >100.000 слов


Котик Б   (2006-04-26 16:05:00) [7]

Ну конечно же можно :)
$50 - что может быть проще :)))


leonidus   (2006-04-26 14:43:00) [8]

да нет, это неудобно будет, ListView смотрится очень хорошо и меня в нем все устраивает, хочется именно на его базу построить приложение


Jeer   (2006-04-26 14:38:00) [9]

Канешно - DBGrid и базонька данных, шелудивая.


leonidus   (2006-04-26 14:25:00) [10]

Блин, че-то там совсем как-то заморочено, можно чтонибудь попроще?


Игорь Шевченко   (2006-04-26 11:39:00) [11]

Program Files\Borland\Delphi\Demos\Virtual ListView


Наверх

Титульная страница Поиск, карта сайта Написать письмо