| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > TTreeView частичная прорисовка |
| Автор: MuForum 9.8.2012, 17:39 |
| Доброго времени суток. Необходимо решить поставленную задачу под 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. -> Может у кого-то есть толковые ссылки, документация, статьи, исходники и т.д. - Заранее благодарю. |
| Автор: northener 10.8.2012, 01:22 |
Хм. Вспоминая личный совет мне от некоего весьма широко известного мастера, VirtualTreeView - это ещё и немалый геморой в использовании. |
| Автор: kami 10.8.2012, 21:29 |
| ------------ |