Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TreeView


Автор: Гость_ComR@De 26.4.2004, 14:13
При добавлении дочернего узла путем поиска родительского узла (перебор всех значений дерева) возникает проблема.
Если родительских узлов с одинаковым содержимым больше одного, то дочерний узел будет повторно внесен в первый найденный родительский узел.
Как этого избежать?

Автор: Guest 26.4.2004, 15:03
Код покажи

Автор: x77 26.4.2004, 17:25
надо однозначно идентифицировать каждый узел. например, при построении указывать для каждого нода уникальный StateIndex (если StateImages не используется, конечно). если "свободных" свойств нет, остаётся кидать в Data некий пойнтер. собственно, если дата не используется - можно просто присваивать в само свойство любое значение типа Cardinal, а если дата используется, то внести в неё поле с уникальным идентификатором и заполнять его при вставке.

Автор: ComR@De 27.4.2004, 15:38
Спасибо за совет. Я указанные индексы не создавал, а стал проверять не свойство Text, а свoйства Level и Index. Все заработало.

Автор: NiJazz 27.4.2004, 15:46
А можно в этом случае использовать свойство Tag?

Автор: p0s0l 27.4.2004, 15:48
По-моему, ComR@De, ты что-то перенавымудривал. Расскажи поподробнее твою задачку, может тут всё просто ???

Автор: x77 27.4.2004, 15:56
NiJazz, было бы можно, оно, собственно, для того и предназначено, если бы оно у TTreeNode было. почему его нет - я до сих пор понять не могу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)