Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630

Виртуальный режим TListView.

03.06.2011, 12:16. Показов 4690. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В официальном руководстве вроде бы сказано, что при включении виртуального режима (OwnerData = true) ListView помещает текущие, уже заполненные Item'ы во внутренний кэш. Но вот я что-то такого не наблюдаю: если просто поставить счётчик на событие заполнения Item'а (вроде OnData), то он увеличивается бешеными темпами, причём наблюдаем увеличение:
  • Если листануть список вниз, а затем обратно вверх, причём увеличивается даже когда идёт вверх, а там Item'ы должны быть уже заполнены.
  • Если поводить мышкой по таблице вверх-вниз. При наведении курсора на одну из строчек Item'а он автоматически обновляется.
Это наводит на мысль, что никакого внутреннего кэша нету или он по умолчанию выключен.

Внимание вопрос: как включить кэш, если он существует?
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2011, 12:16
Ответы с готовыми решениями:

Виртуальный режим ListView
Добрый день! Есть задача, отображать табличные данные, которые пересчитываются по истечении таймера. Использую компонент ListView в...

Виртуальный режим в ListView
Добрый день! Задача состоит в том, чтобы считать файл и вывести его содержимое в hex на экран. Вывожу в listview. На данный момент не...

Виртуальный режим в ListView
Добрый день! Задача состоит в том, чтобы считать данные файла любого размера и вывести их в hex на экран. С файлом работаю через...

7
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
03.06.2011, 13:32
Причем там кэш ? В справке ясно написано, что сам ЛВ в этом режиме не хранит ничего, а итемы ему "поставляет" программист, "подсовывая" их в соотв.событиях.
0
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
03.06.2011, 15:06  [ТС]
У меня с английским плохо. Может, я что-то не понимаю?
To improve the performance of a virtual list view control, cache items for quick retrieval.
0
 Аватар для pHOMM
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
03.06.2011, 15:29
Не знаю как там в Листвию, но данное прдложение переводится с использованием повелительного наклонения : "Чтобы улучшить производительность .. , кешируйте итемы для быстрого получения"
0
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
04.06.2011, 14:21  [ТС]
И как их кешировать? Я завёл отдельный массив записей:
Delphi
1
2
3
4
type TStrItem = record
  Str: TStringList;
  name: string;
end;
В нём храню название Item.Caption и колонки Item.SubItems. Это и называется кэшированием?

Добавлено через 5 минут
И как использовать OnDataHint, OnDataStateChange?

Добавлено через 22 часа 28 минут
Неужели никто не знает?!
0
1 / 1 / 1
Регистрация: 23.10.2017
Сообщений: 23
01.08.2011, 02:22
Цитата Сообщение от Сидорович Посмотреть сообщение
У меня с английским плохо. Может, я что-то не понимаю?
To improve the performance of a virtual list view control, cache items for quick retrieval.
Да эта фраза меня тоже в тупик поставила, что же здесь подразумевается под кэшированием?
У меня данные в виртуальном ListView иногда быстро меняются, поэтому начинаю часто вызывать UpdateItems, задавая новые значения для Item на OnData(Caption, SubItems) но при этом ListView начинает моргать. Можно ли здесь чтото ускорить?
0
 Аватар для Xaker
13 / 12 / 3
Регистрация: 19.09.2009
Сообщений: 179
09.08.2011, 09:05
Сидорович, обычно в таких случаях говорят "смотри Delphi\Demos\Virtual Listview там хороший пример" и в принципе так и есть
0
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
09.08.2011, 13:54  [ТС]
Смотрим даты, люди.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2011, 13:54
Помогаю со студенческими работами здесь

Виртуальный режим в дочерних окнах
Для открытия дочернего окна из главного всегда использую следующий код. private void конфигурацияToolStripMenuItem_Click(object sender,...

Что такое виртуальный и относительный виртуальный адрес?
Прив. Хочу разобрать одну программку, дизассемблировал ее и начал разбиратся. При помощи API Monitor нашел адрес функции, которая...

TListView
Всем добрый день! Нужна помощь. В книге "Библия Delphi" я начал читать про компонент ListView.Для примера был создан небольшой файловый...

Очистить TListView
Нужно очистить TListView от всех записей (которые находятся в двух колонках) кроме записей заголовка. Чтобы можно было по новой заполнить. ...

TListView +TCheckBox
Добрый день, возможно ли в шапку компонента вставить чекбокс, что бы получился эффект "выбрать все" как в почтовых страницах?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru