Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
||||||
1 | ||||||
TreeView - узнать ключ выделенного элемента11.02.2011, 08:30. Показов 8465. Ответов 24
Метки нет (Все метки)
Доброго времени суток. У меня такой вопросик: как узнать ключ выделенного элемента в TreeView ... При условии что сам TreeView заполняется из БД... и нужно узнать ключ именно из неё...
Добавлено через 17 часов 51 минуту если это поможет, то вот так TW заполняется:
0
|
11.02.2011, 08:30 | |
Ответы с готовыми решениями:
24
Treeview получение индекса выделенного элемента Изменение цвета выделенного элемента в TreeView по нажатию кнопки Treeview считывание выделенного элемента Сохранить/восстановить состояние treeview; избавиться от первого выделенного элемента |
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|||||||||||
11.02.2011, 10:37 | 2 | ||||||||||
Допустим ключ типа GUID:
При добавлении используем свойство Data у узла
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 10:46 [ТС] | 3 |
_victor, а tn:ttreenode; для чего?
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|
11.02.2011, 10:49 | 4 |
th:TTreeNode - Переменная для доступа к свойствам добавленного узла, так иногда удобней работать
1
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 10:57 [ТС] | 5 |
_victor, попробую разобраться))
Добавлено через 6 минут ругается на parent, в 9-й строке примера... p.s. что за "Имя узла" ?
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
||||||
11.02.2011, 11:02 | 6 | |||||
Извини, забыл самое главное, при удалении узла осообождай выделенную память
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 11:04 [ТС] | 7 |
_victor, удалять не потребуется... т.е. само дерево составляется в БД, а в проге только отображается...
не совсем понял, как вот эта строчка работает: tn := tree.Items.AddChild(parent,' имя узла');
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|
11.02.2011, 11:05 | 8 |
DenProx, в исходнике описал все схематично, так как Делфи сейчас нет под рукой
parent - родительский узел, в который добавляется новый, ну а 'имя узла' - строчка которую записываешь в строчку дерева.
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 11:09 [ТС] | 9 |
_victor, т.е. вместо Parent и Имя узла, мне нужно что то свое написать?
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|
11.02.2011, 11:09 | 10 |
Сейчас переделаю в твоем исходнике чтобы было понятней =)
а освобождать память все равно нужно, если уж выделил.
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 11:10 [ТС] | 11 |
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
||||||
11.02.2011, 11:18 | 12 | |||||
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 11:26 [ТС] | 13 |
_victor, вот здесь
id := cardinal(TreeView1.Items[i].Data^); ругается, пишет : Invalid Index
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|
11.02.2011, 11:36 | 14 |
а какое значение у i на момент ошибки?
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 11:40 [ТС] | 15 |
странно... значение в режиме отладки пишет: 4 781 748
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
||||||
11.02.2011, 11:56 | 16 | |||||
Видимо, я опять криво написал =)
i в данном случае был счетчик цикла типа того
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
11.02.2011, 12:05 [ТС] | 17 |
_victor, теперь ошибок нет) но когда я вывожу значение id в Label, выводится одно только число при нажатии на любую запись... ключ показывается тот который был добавлен последним в TreeView
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|
11.02.2011, 12:08 | 18 |
Покажи код добавления
0
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
||||||
11.02.2011, 12:10 [ТС] | 19 | |||||
0
|
116 / 58 / 6
Регистрация: 16.12.2009
Сообщений: 204
|
|
11.02.2011, 12:30 | 20 |
Не могу понять, домой приду, разберусь
Одно замечание: у тебя в массиве Nodes количество элементов на 1 больше чем требуется (хотя это не критично).
1
|
11.02.2011, 12:30 | |
11.02.2011, 12:30 | |
Помогаю со студенческими работами здесь
20
Как узнать номер выделенного элемента в ListBox? TreeView заполнить из БД и получить ID выделенного узла Как получить номер выделенного узла из treeview Цвет выделенного узла TreeView при потере фокуса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |