|
|
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
Могу скрывать родителя и все дочерние становятся прямым списком. И обратно тоже: Сделать прямым списком - быстро. А вот обратно расфасовать по правильным родителям - долго. Хотя я сохранил оригинального родителя: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ~180 парентов с пока ещё ~70000 нодами вообщем, "возвращение" занимает 2-4 секунды. Возможно ускориться? Там больше планируется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 00:53:12 |
|
||
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
Кар-Кар, ты данные не в дереве храни. И просто перестраивай дерево с нуля, и все. И дочерние узлы подгружай лишь в момент их разворачивания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 01:53:12 |
|
||
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
...можешь даже два окна деревьев завести, одно под другим, и переключаться между ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 01:56:41 |
|
||
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
чччД, Данные там просто интерфейс и пара dword-ов в оригинале(чтобы знать как рисовать, многотиповые ноды), это малозначительно. Перестройка вот с нуля - она сбивает всё, т.е. ноды снова закрыты станут, скроллбокс на нулевой позиции и т.п. Хотел избежать. чччДИ дочерние узлы подгружай лишь в момент их разворачивания. Это событие есть? Посмотрю. Может даже попробую паренты менять прям в OnGetText только, в FShow у меня есть флаги как подразумевается показ дерева. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 02:10:09 |
|
||
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
Кар-Кар, смотри потроха метода MoveTo. как минимум, попробуй развернуть обход дерева при перестройке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 02:18:50 |
|
||
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
Кар-Кар, 1. событие есть. 2. перед перестраиванием в парент-чилд запомни, какой нод был текущим, вычисли его парента и тоже запомни. С нуля построй парент-уровень, найди нужный парент-узел, распахни его. Сработает событие см.выше, подгрузятся чилды этого парента. Среди чилдов найди свой узел. Выполни скролл чилд-узла в облвсть видимости окна. 3. запоминать все развернутые узлы не надо, юзеры не оценят. Более того, мы в итоге сдели так, чтобы была развернута лишь одна парент-ветка, просие сразу сворачиваются. Впрочем, дело ваше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 02:20:11 |
|
||
|
Медленный VirtualTreeView (массовое переназначение родителей)
|
|||
|---|---|---|---|
|
#18+
чччД...можешь даже два окна деревьев завести, одно под другим, и переключаться между ними.Вариант. Но пока не знаю, уровней планируется 4 или где-то так. Типа фильтр, в любой момент снимать галки и видеть скопом (в этот момент непервостепенно знать кто-кому принадлежит). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 02:21:40 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39558682&tid=2041527]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 372ms |

| 0 / 0 |
