Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Как в TListView отобразить больше 32000 записей   Найти похожие ветки 

 
leonidus ©   (2006-04-26 11:31) [0]

Есть компонент 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

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


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

Program Files\Borland\Delphi\Demos\Virtual ListView


 
leonidus ©   (2006-04-26 14:25) [2]

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


 
Jeer ©   (2006-04-26 14:38) [3]

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


 
leonidus ©   (2006-04-26 14:43) [4]

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


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

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


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

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

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


 
atruhin ©   (2006-04-27 04:13) [7]


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

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


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

leonidus ©   (26.04.06 14:25) [2]


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


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


 
MegaVolt ©   (2006-04-28 12:31) [9]

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


 
Jeer ©   (2006-04-28 16:05) [10]

leonidus ©   (26.04.06 14:43) [4]

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

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


 
MegaVolt ©   (2006-04-28 17:38) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.056 c
15-1147190703
asd
2006-05-09 20:05
2006.06.04
Ошибка [Error] Unit1.pas(40): Undeclared identifier: Connected


1-1146136334
tytus
2006-04-27 15:12
2006.06.04
ListBox и фоновый рисунок


2-1147930734
ttt_111
2006-05-18 09:38
2006.06.04
Работа с компонентом DBGrid?


3-1144690064
Рустем
2006-04-10 21:27
2006.06.04
Ошибка: Не удается найти строку для обновления...


15-1147020493
AlexanderMS
2006-05-07 20:48
2006.06.04
Украшение кода