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

Вниз

PDirList и ListView   Найти похожие ветки 

 
Bil Bal Dur   (2005-01-14 20:45) [0]

Мне нужно вывести список файлов из директории в ListView. Делаю так:

...
lFiles:=NewDirList(lPath,"*.*",FILE_ATTRIBUTE_NORMAL+FILE_ATTRIBUTE_DIRECTORY)
...
for tmp:=0 to lFiles.Count-1 do
 form1.ListView1.LVItemAdd(lFiles.Names[tmp]);

если число файлов 5-10 и более тысяч, то заметно тормозит. а если ещё иконки добавлять, то вообще мрак.

можно ли ускорить этот процесс?


 
Андрей ©   (2005-01-18 12:51) [1]

Возможно, несколько ускорит пара BeginUpdate - EndUpdate, обрамляющая цикл добавления в ListView.


form1.BeginUpdate;
for tmp:=0 to lFiles.Count-1 do
 form1.ListView1.LVItemAdd(lFiles.Names[tmp]);
form1.EndUpdate;


А вообще-то ты пробовал зайти в подкаталог с 10000 файлов FARом или проводником (первый раз, когда инфо не в кэше)? Они тоже тормозят.


 
ECM ©   (2005-01-18 13:28) [2]

В таких случаях необходимо использовать ListView в режиме
"виртуального списка" - сам пользуюсь всегда - тормоза пропадают!
http://www.rsdn.ru/article/controls/virtlist.xml


 
ECM ©   (2005-01-18 13:49) [3]

З.Ы. Естественно тормоза пропадают относительно отображения в ListView - т.к. данные в этом случае НЕ ЗАКАЧИВАЮТСЯ ДОПОЛНИТЕЛЬНО в ListView
а берутся программно только для видимых в данный момент строк.
Тормоза по получению названий 10000 файлов - попрежнему остануться. Но их можно попытаться вынести в отдельный поток.


 
Bil Bal Dur   (2005-01-18 23:05) [4]

Спасибо за участие!!!
Правда я уже и сам дошел до ответа. Сделал через CustomObj, OnLVData, lvoOwnerData, вобщем через "виртуальный" ListView. Правда перед этим 4 дня копался в коде, но зато теперь на всю жизнь запомню!!!
Begin Update и End UpDate мне не помогли.


 
SPeller ©   (2005-01-19 10:52) [5]

Для ускорения добавления большого числа итемов, чтобы после добавления каждого итема listview не перерисовывался, можно использовать WM_SETREDRAW.



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

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

Наверх




Память: 0.45 MB
Время: 0.026 c
14-1123169692
drakoga
2005-08-04 19:34
2005.08.28
У кого есть какие сайты


14-1123078581
oldman
2005-08-03 18:16
2005.08.28
Уважаемые модераторы, прошу обратить внимание!


14-1123137542
Alex*
2005-08-04 10:39
2005.08.28
Тактико-экономическая оценка (ТЭО) программнного средства


1-1123404272
Ксардас
2005-08-07 12:44
2005.08.28
Как получить номер верхней видной строки в РичЭдите?


1-1123493220
гость2
2005-08-08 13:27
2005.08.28
проверка значения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский