:: Visual Foxpro, Foxpro for DOS
Вопрос по TreeView
danton1973
Автор

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Можно ли каким-то образом в режиме отладки увидеть структуру дерева в том виде, в котором я его создаю:
key_parent,level,key,name,picture
и т.д. все созданные узлы?
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
Можно. Только дебаггер должен быть системным, а не фоксовым.
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
danton1973
Можно ли каким-то образом в режиме отладки увидеть структуру дерева в том виде, в котором я его создаю:
key_parent,level,key,name,picture
и т.д. все созданные узлы?

Как вариант. Делал когда-то - при формировании дерева просто создавал курсор, отображающий деревянную структуру. При просмотре наглядно.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
danton1973
Автор

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Цитата:
Как вариант. Делал когда-то - при формировании дерева просто создавал курсор, отображающий деревянную структуру. При просмотре наглядно.
В смысле:
This.Nodes.Add(parentKey,level,Key,Name,Picture)
Insert into cursor (parentKey,level,Key,Name,Picture) values (parentKey,level,Key,Name,Picture)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
danton1973
Цитата:
Как вариант. Делал когда-то - при формировании дерева просто создавал курсор, отображающий деревянную структуру. При просмотре наглядно.
В смысле:
This.Nodes.Add(parentKey,level,Key,Name,Picture)
Insert into cursor (parentKey,level,Key,Name,Picture) values (parentKey,level,Key,Name,Picture)

Нет, там немного другая структура будет. Нужно сделать курсор - с числом полей по числу уровней дерева. Ну само собой самым первым еще и поле с собственно "адресом" в дереве.
А остальные, одно поле - корневая ветка, следующее поле - второй уровень, дальше третий ну и т.п. - по глубине дерева. И потом заполнять его при сканировании - параллельно с деревом.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
dimag

Сообщений: 464
Откуда: Одинцово
Дата регистрации: 17.12.2002
Лучше один раз увидеть (прочитать), чем 100 услышать... лови пример и статью работы с деревом от Doug Henning
1drv.ms


------------------
Глупость - это не отсутствие ума, это такой ум.
Ratings: 0 negative/1 positive
Re: Вопрос по TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
В Решениях Форума
FalseTree - Дерево в гриде (C)A.Tarasov, Ukraine Kiev 2009



Исправлено 1 раз(а). Последнее : Ydin, 02.04.21 09:50
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
danton1973
Автор

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Ydin
В Решениях Форума
FalseTree - Дерево в гриде (C)A.Tarasov, Ukraine Kiev 2009
Это я видел, но пока не разобрался...
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
danton1973
Ydin
В Решениях Форума
FalseTree - Дерево в гриде (C)A.Tarasov, Ukraine Kiev 2009
Это я видел, но пока не разобрался...

Не знаю, как там у автора этого решения, возможно у него просто достаточно многофункционально как-то сделано, для каких-то целей, отсюда могло и показаться сходу сложным для восприятия.
Сам же принцип создания дерева-грида очень простой.
Скажем, на базе вышеописанного курсора в качестве ресурса - создается обычный грид.
Скрытие-показ веток при этом можно осуществлять кликом по дополнительным промежуточным полям с картинками плюсов-минусов - путем динамической фильтрации самого курсора. Ну и т.п. Различных наворотв можно придумать дальше сколько угодно.
Т.е. в принципе на основе всего сказанного не так уж сложно буквально сходу уже и набросать прототип. А потом его дорабатывать уже более конкретно под свои цели и фантазии.
При необходимости можно все это затем оформить как класс и использовать в дальнейшем в своих проектах.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
danton1973
Автор

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Я то просто хотел при отладке проверять состояние TreeView. Так что придётся реализовать через дополнительный курсор.
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
danton1973
Я то просто хотел при отладке проверять состояние TreeView. Так что придётся реализовать через дополнительный курсор.

Ну просто народ по ходу "развил тему".
Пятница как бы. Да и может пригодится когда.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
danton1973
Я то просто хотел при отладке проверять состояние TreeView. Так что придётся реализовать через дополнительный курсор.

По моему так абсолютно лишнее.
На заполнение курсора и его анализ масса ненужных действий.
А узнать что-либо о любом узле дерева - ноль проблем.
По большому счёту дерево должно быть вообще динамически подгружаемым. Не дешевое это удовольствие полностью грузить (порой).
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
danton1973
Автор

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Как узнать средствами TreeView наличие узла:
THIS.Nodes.REMOVE(m.toNode.KEY + 'www')
?
Я без дополнительного курсора не вижу решения.
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
danton1973
Как узнать средствами TreeView наличие узла:
THIS.Nodes.REMOVE(m.toNode.KEY + 'www')
?
Я без дополнительного курсора не вижу решения.

Type('this.Nodes(tcKey)') = 'O'
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Taran
А узнать что-либо о любом узле дерева - ноль проблем.

Дык это не наглядно. ;)
Фигли вводить какой-то код. То ли дело - подвесил курсор через browse - и любуйся, как он по шагам заполняется. [sm128]
Ну и в целом - приятнее же глянуть, окинуть взором так сказать.
Нежели чего-то там с чем-то сравнивать.
А по поводу "недешевости" - никогда как-то не пользовал очень большие деревья. На мой взгляд, это неправильный в принципе подход - садить большие данные в дерево.
Дерево - оно чисто для выбора чего-то не слишком большого, не больше десятков. Типа списка подразделений, подразделов справочников и т.п.
Для больших же данных - грид и только грид. И ничего кроме грида!
Зачем насиловать для этого дерево.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
На подвешивание курсора и любование времени потратишь не меньше, чем на изучение дерева.

Большые наборы и динамик?
Банальная структура каталогов или другой справочник.
Дерево во многом более наглядно чем грид.
А если данные дергаешь из интернета, то без динамики не обойтись.
У меня один справочник общего пользования 4 уровня. В низшем 13тыс элементов.
Когда все оформлено в виде класса, то вообще легко и просто. С гридом значительно сложней.
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Taran
У меня один справочник общего пользования 4 уровня. В низшем 13тыс элементов.

И сколько времени оно у тебя обновляется? Мышка не виснет при прокрутке?
Оформление в любом случае - дело привычки. Дерево таки же не идеал. Хотя при желании можно и дерево на базе грида, как выше упоминали. Это как бы реально скоростнее в любом случае.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
Надеюсь, ты правильно понял, 13тыс элементов не в одной ветке. А в целом на уровень. Иначально грузится нулевой уровень и расширяемые ветки создаются при необходимости. Там один элемент "грузится...".
Соотв при открытии верхнего уровня показывается эта ветка и улетает запрос в веб. При ответе заполняется одна ветка. И так далее.
Если в гриде, то нужен отсортированный курсор, механизм отображения ветвей, иконок и разворота.
Все это тоже у меня есть на базе класса от Тарасова. Практически весь переписан, в том числе под структуру каталогов и файлов. Естественно динамическое заполнение.
Небольшое ограничение у Тарасова есть. Уровень вложенности надо задавать на этапе запуска формы. Часто это не важно, но иногда критично.
Дерево в гриде конечно интересно, но только тогда, когда нужно несколько колонок. Допустим я юзаю свой мп3 плайер по мотивам Саши Чембержи.
Ratings: 0 negative/0 positive
Re: Вопрос по TreeView
sphinx

Сообщений: 31187
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
dimag
Лучше один раз увидеть (прочитать), чем 100 услышать... лови пример и статью работы с деревом от Doug Henning
1drv.ms

Дим, :hi:


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 30 (Гостей: 30)

© 2000-2024 Fox Club 
Яндекс.Метрика