Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

еще раз о treeview   Найти похожие ветки 

 
malamba   (2004-12-14 10:50) [0]

Согласен, что Treeview не следует заполнять сразу - только верхний уровень, а ветки подгружать только по мере обращения к ним.

Но тут возникла такая необходимость:
в стороннем элементе управления пользователь совершает определенные действия, в результате которых
должна выделится и раскрытся определенная нижняя ветка.
В Treeview ее по определению пока-что нет (она не подгружена), поиск и фокусировка по Treeview поэтому не имеет смысла.

Может есть какие-нибудь определенные алгоритмы такого динамического добавления или через гланды: загружать верхнюю ветвь, затем ей подчиненные и так до самого низа, пока не загрузим и не выделим нужную?


 
Семен Сорокин ©   (2004-12-14 11:16) [1]

рекурсия должна помочь :)


 
malamba   (2004-12-14 11:29) [2]

Должна бы.
Но если дочерние элементы еще не подгружены?


 
DiamondShark ©   (2004-12-14 12:44) [3]

А в чём проблемы?
Раскрываем ветки, начиная с верхней, а обработчик OnExpanding прекрасно добавляет новые элементы.


 
malamba   (2004-12-15 10:02) [4]

Для того, чтобы открыть нижнюю ветвь мне тогда нужно восстановить всю иерархию снизу доверху, а затем проделать всю эту процедуру обратно на Treeview.
Поскольку все это сопровождается достаточно неочевидными запросами к базе данных, я скорее склонюсь к мысли заполнить TreeView с самого начала ( с полтыщи элементов), а потом просто локализовать нужный элемент поиском.

Я надеялся, что может есть какие-нибудь формализованные правила по такой ситуации


 
User1   (2004-12-15 10:33) [5]

Есть правила. Раз ты говоришь что грузишь из базы данных, то наверняка, ты в базе данных можешь узнать полный путь до етого елемента! Узнай полный путь, а в TreeView начинай програмно от корня двигаться в сторону конечного елемента.


 
malamba   (2004-12-15 11:14) [6]

У меня в базе три или четыре таблицы связаны иерарархическими связями, кроме того, создаются две временные сборные таблицы, из которых и берутся данные для заполнения TreeView.

Для поиска и вычленения полной связи нужно знать сразу несколько разных значений - мне кажется сама процедура усложняется настолько, что нет смысла ее использовать.



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
3-1101369676
Сергей Медведев
2004-11-25 11:01
2004.12.26
Права в FireBird


1-1102500083
Dmitrij_K
2004-12-08 13:01
2004.12.26
Скажите аналог сишной команды "^="


9-1093282124
Creep
2004-08-23 21:28
2004.12.26
Как ввести в игру свой шрифт? Стандартными средствами Delphi7.


1-1103097139
Bless
2004-12-15 10:52
2004.12.26
Как сделать так, чтобы во время отладки не заходило в какой-то


1-1102946567
kaktus
2004-12-13 17:02
2004.12.26
Check-нутый грид!