Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Tree View / 4 сообщений из 4, страница 1 из 1
14.04.2017, 13:22
    #39438676
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tree View
Народ,
Давно ломаю себе голову и никак не могу найти решения.
Используется 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
14.04.2017, 22:17
    #39439001
bif17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tree View
Как-то давно я сталкивался с данной проблемой.
Поищите решение в моей прикрепленной форме.
...
Рейтинг: 0 / 0
17.04.2017, 11:43
    #39439576
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tree View
Вместо индекса вполне можно указать ключ. Это взаимозаменяемые способы идентификации узла

Код: 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
18.04.2017, 10:31
    #39440046
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tree View
ВладимирМ,

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


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