![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
||||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Хм. Вспоминая личный совет мне от некоего весьма широко известного мастера, VirtualTreeView - это ещё и немалый геморой в использовании. ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
------------
Это сообщение отредактировал(а) kami - 11.8.2012, 19:00 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |