Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TTreeView частичная прорисовка 
V
    Опции темы
MuForum
Дата 9.8.2012, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: нет
Всего: 4



Доброго времени суток.
Необходимо решить поставленную задачу под Delphi 7.
Необходимо с XML файла грузить огромный список элементов в компонент TTreeView - порядка 200'000 записей первого порядка и куча вложений...

Даже если использовать прерывания при прорисовки: BeginUpdate/EndUpdate, всё равно это извращение....
Встал разумный вопрос, почему бы не хранить в памяти весь xml Документ(запись всех нодов и т.д.), а вот в самом компоненте не прорисовать лишь видимую часть?

Я себе это представляю так:
1. Считывается высота/ширина видимой части TTreeView.
2. Перехватываются функции прокрутки по горизонтали/вертикале.
3. Вычисляется высота одного нода. Делится на высоту компонента, допустим получилось n элементов.
4. Прорисовываем в видимой части TTreeView только 'n' элементов.
5. При изменении позиции скролов/scroll, рисуем новые ноды.
6. При раскрывании кого-то элемента(нода), рисуем новую схему.


P.S. -> Суть в том, чтобы все ноды хранились в памяти, Но, прорисовывались лишь 'n' элементов которые поместятся по высоте видимой части.

P.S. -> Может у кого-то есть толковые ссылки, документация, статьи, исходники и т.д.
- Заранее благодарю.

Это сообщение отредактировал(а) MuForum - 9.8.2012, 17:43


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
kami
Дата 9.8.2012, 18:34 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(MuForum @  9.8.2012,  17:39 Найти цитируемый пост)
 Может у кого-то есть толковые ссылки, документация, статьи, исходники и т.д.

VirtualTreeView - это решение всех озвученных проблем.
На форуме есть статья по нему, в гугле - куча тем и примеров. Главное - правильно выбрать версию.
PM MAIL WWW   Вверх
northener
Дата 10.8.2012, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(kami @  9.8.2012,  18:34 Найти цитируемый пост)
VirtualTreeView - это решение всех озвученных проблем.

Хм. Вспоминая личный совет мне от некоего весьма широко известного мастера, VirtualTreeView - это ещё и немалый геморой в использовании. smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
kami
Дата 10.8.2012, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



------------

Это сообщение отредактировал(а) kami - 11.8.2012, 19:00
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1058 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.