powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Tree View
4 сообщений из 4, страница 1 из 1
Tree View
    #39438676
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ,
Давно ломаю себе голову и никак не могу найти решения.
Используется Tree View котрол в качестве справочника.

Чтобы получить индекс нужного элемента обхожу справочник

FOR i = 1 to o.Nodes.Count
IF o.Nodes(i).Key = tmpKey
tmpIndex =o.Nodes(i).Index
Exit
ENDIF
ENDFOR

А можно ли зная Key узла (Node) сразу получить его индекс с древидном списке.
Ну никак не найду решения.
Всем спасибо
...
Рейтинг: 0 / 0
Tree View
    #39439001
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то давно я сталкивался с данной проблемой.
Поищите решение в моей прикрепленной форме.
...
Рейтинг: 0 / 0
Tree View
    #39439576
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо индекса вполне можно указать ключ. Это взаимозаменяемые способы идентификации узла

Код: sql
1.
2.
3.
4.
5.
* Поиск ключа по индексу
? o.Nodes(i).Key

* Поиск индекса по ключу
? o.Nodes(Key).Index



Только надо иметь в виду, что ключ - это только и исключительно символьные данные. Даже если Вы указываете его как число, но в момент присвоения он будет конвертирован в строку. Однако при поиске узла, если указано число, то оно будет интерпретировано как индекс.

При этом есть еще проблема автоконвертации внутри методов ActiveX. Даже если перед поиском конвертировать ключ в строку через str(), но внутри метода Nodes() произойдет обратная конвертация в число и, соответственно, поиск по индексу. Т.е. ActiveX идентифицирует число не по типу данных, а по содержимому!

Чтобы избежать этой неоднозначности, при формировании ключа обязательно следует добавтить какой-нибудь символ, отличный от цифры. Обычно используют ведущий символ подчеркивания. Примерно так

Код: sql
1.
o.Nodes(i).Key = "_" + str(12345)



Но, разумеется, это может быть любой символ

Подробнее о работе с объектом TreeView смотрите здесь

http://kodu.neti.ee/~juri4/vfpplus/ax_treeview_faq_01_ru.htm
...
Рейтинг: 0 / 0
Tree View
    #39440046
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

Спасибо, как всегда Вы на высоте ....
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Tree View
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]