Страница: 1 | 2 |
Вопрос: treeview
Добавлено: 22.01.07 13:08
Автор вопроса: Antibiotic
Работаю с элементом treeview в VB6..
Подскажите как можно сделать чтобы в нем можно было переместить нижестоящий раздел (со всем прилагаемым деревом) над вышестоящим..
Ответы
Всего ответов: 17
Номер ответа: 1
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #1
Добавлено: 22.01.07 13:32
если такое вообще возможно..
Номер ответа: 2
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #2
Добавлено: 22.01.07 14:53
наверное достаточно изменить родителя для раздела, и все что в разделе за ним пойдет.
Номер ответа: 3
Автор ответа:
Dick Johnson
Вопросов: 0
Ответов: 2
Профиль | | #3
Добавлено: 22.01.07 15:42
Я никак не могу найти свойство которое отвечало бы за положение нода в рамках непосредственного родителя. index отвечает за общий индекс среди всех деревьев.
Номер ответа: 4
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #4
Добавлено: 22.01.07 16:12
каким образом ты предлагаешь сменить родителя?
есть идею присвоить значения дерева массиву и построить его заново с нужными изменениями..
вот только у меня не получается подсчитать каким размером должен быть двумерный массив (первое число должно равняться количеству корневых разделов.. второе - максимальному количеству подразделов в одном из разделов)..
Номер ответа: 5
Автор ответа:
Dick Johnson
Вопросов: 0
Ответов: 2
Профиль | | #5
Добавлено: 22.01.07 19:28
т.е. той ветке которую переносишь свойству Parent присваиваешь ту ветку к которой он будет дочерним.
Номер ответа: 6
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #6
Добавлено: 23.01.07 02:32
раздел меняется но они дописываются снизу..
treeview - это получается база данных..
как можно достать оттуда все дерево без потери структуры?
Номер ответа: 7
Автор ответа:
Bombardier
ICQ: 42305746
Вопросов: 2
Ответов: 67
Web-сайт:
Профиль | | #7
Добавлено: 23.01.07 17:49
ну мне когда в базу нужно было дерево запихнуть, я просто добавлял поле parent и все ))) отлично потом восстанавливается...
Номер ответа: 8
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #8
Добавлено: 24.01.07 02:10
2Bombardier
можешь показать код как например присвоить дерево массиву? или вообще как можно передать дерево в переменную.. может я ошибаюсь с массивом..
Номер ответа: 9
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #9
Добавлено: 24.01.07 08:45
Antibiotic, ты ошибаешься в корне
Не, для того, чтобы не только перемещать разделы в другие подразделы, но и перемещать раздел в пределах одного раздела (тогда, когда важен порядок разделов) - надо использовать константы относительного положения элементов дерева: tvwFirst, tvwNext, tvwPrevious, tvwLast и, если надо, другие. А при построении дерева из таблицы базы данных или из массива действительно обычно всегда хватит одной tvwChild, как у Bombardier'а
Номер ответа: 10
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #10
Добавлено: 24.01.07 08:57
Константы при построении, при создании новых узлов в уже построенном дереве, а для перемещения попробуй свойства элемента (item) узла (node):
.Root
.FirstSibling
.Next
.Previous
.LastSibling
.Parent
Номер ответа: 11
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #11
Добавлено: 24.01.07 09:43
2mc-black
пишет "Argument not optional" и указывает на .Item
я пробовал.. сюда я полез после того как перепробовал все методом научного тыка..
выдает или такую ошибку или что свойство является константой и не может быть изменено..
покажи пожалуста на примере..
Номер ответа: 12
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #12
Добавлено: 24.01.07 12:22
свойство только для чтения.. хм, а .Parent разве тоже только для чтения? можно перестраивать хотя бы в пределах дочерних по отношению в родителю, куда перетаскиваешь элемент. кода у меня нет ну перестраивать всю ветку заново это плохой выход, т.к. гораздо медленнее работать будет когда много данных. если ничего больше не остается - делай рекурсию - перестраивай всё дерево или его часть.
Номер ответа: 13
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #13
Добавлено: 28.01.07 02:47
мне не надо менять родителя.. мне в пределах одного родителя поменять местами..
а также самих родителей в корневом менять местами..
данных должно быть не много.. не больше 100 веток второго уровня.. иначе просто в дереве смысл отпадет-станет неудобная навигация по записям..
досадно что никто так и не сказал наверняка о возможностях дерева (
Номер ответа: 14
Автор ответа:
Antibiotic
Вопросов: 9
Ответов: 34
Профиль | | #14
Добавлено: 28.01.07 02:50
есть вероятность что в дереве нет такой функции как смена положения веток и есть только сортировка по алфавиту..
кто нибудь может подтвердить или опровергнуть?
Номер ответа: 15
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #15
Добавлено: 28.01.07 21:11
поскольку свойства
.FirstSibling
.Next
.Previous
.LastSibling
все только для чтения (сам только проверил), значит такой встроенной возможности нет - есть тоько программная возможность, т.е. если ты в своей программе сам реализуешь нужные тебе методы путем перестройки той части дерева, что тебе необходимо.