Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
6 / 6 / 0
Регистрация: 22.02.2010
Сообщений: 66

добавление в TListView больших объемов инфы

13.03.2011, 23:34. Показов 2251. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые коллеги!
У меня проблема с TListView (режим vsReport). Мне нужно добавить в него большое количество Item'ов
(порядка 80 тысяч). В Item'е 3 Subitem. Делаю примерно так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  i: integer;
  li: TListItem;
begin
  for i := 0 to 80000 do
    begin
      li := ListView1.Items.Add();
      li.Caption := str1;
      li.SubItems.Add(str2);
      li.SubItems.Add(str3);
      li.SubItems.Add(str4);
    end;
end;
Беда в том, что на машине средней паршивости этот код выполняется примерно за 15..20 минут, что не
допустимо. Проблема именно в заполнении ListView - все остальное работает быстро. Есть ли какой-нибудь способ поднять производит
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2011, 23:34
Ответы с готовыми решениями:

Добавление инфы сразу в две таблицы
как добавить информацию сразу в две таблицы вот мой пример кода,только к "kyrsovaya" нужно ещё "kyrsovaya2" ...

Добавление больших объемов данных
Доброго времени суток. Разрабатываю веб-приложение, в качестве бд использую MS SQL для доступа к данным Entity. Мне нужно загрузить 93к...

Добавление в бд больших объемов данных
В бд есть 1 таблица, 31 столбец. С помощь php в запросе добавляются данные. Данные берутся не откуда то, а именно в коде рукой пишется, что...

4
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
14.03.2011, 10:18
Есть.
Держать данные в массиве или дин.списке, а ListView перевести в вирт.режим и использовать лишь для визуализации данных из массива или списка.
0
6 / 6 / 0
Регистрация: 22.02.2010
Сообщений: 66
14.03.2011, 13:45  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Есть.
Держать данные в массиве или дин.списке, а ListView перевести в вирт.режим и использовать лишь для визуализации данных из массива или списка.
Был бы крайне признателен за пример кода. Или чуть-чуть подробнее о виртуальном режиме ListView (прошу прощения, но тут я просто не в теме)
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
14.03.2011, 13:51
А посмотреть демонстрационный проект, идущий в комплекте с Делфи, религия не позволяет ?
0
6 / 6 / 0
Регистрация: 22.02.2010
Сообщений: 66
14.03.2011, 19:16  [ТС]
Спасибо всем! Нашел отличную статью по этой проблеме: http://www.delphi.int.ru/articles/38/
Суть в том, что при работе с большими объемами инфы нужно устанавливать ListView.OwnerData в true, затем присвоить ListView.Count сколько нужно (в моем случае 80000) и создать обработчик события OnData, в котором будет заполняться каждый конкретный Item (с Subitem'ами). Событие OnData возникает только тогда, когда нужно вывести соответствующий Item в видимую область ListView. Естественно, что при большом количестве Item'ов скорость увеличивается на порядки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2011, 19:16
Помогаю со студенческими работами здесь

Добавление в базу больших объемов
Имеется текстовое поле textarea, текст из которого нужно добавлять в базу данных. Поле в таблице имеет тип LONGTEXT. Вот код страницы,...

Хранение больших объемов данных
Всем доброго времени суток и всех с Праздником Победы!)) Сразу к делу) Есть программа (точнее сайт на ASP.NET), есть таблица с данными...

Сортировка больших объемов данных
Доброго времени суток! Есть такая программа поточной сортировки массива. Когда вводится размер ~1кк, программа работает нереально долго....

QT вывод больших объемов текста.
Была идея создать подобие консоли с помощью QT. Создали QTextEdit (QPlainTextEdit в принципе для нас различия не сильно видны). Делаем...

Обработка больших объемов данных
Всем привет. Мне нужно обработать много много строк таблицы, фильтруя их по столбцам. Начну пожалуй сразу с примера. Пример...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru