![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в 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