Форум: "Начинающим";
Текущий архив: 2018.01.28;
Скачать: [xml.tar.bz2];
ВнизНужна помощь по TreeView Найти похожие ветки
← →
Михалыч (2016-02-10 22:07) [0]Здравствуйте мастера! Помогите кто знает пожалуйста. Есть дерево с тремя уровнями вложенности,например:
Продукты
Хлебо-булочные
Хлеб
Булки
Мясные изделия
Котлеты
Отбивные
Напитки
Соки
Фанта
Спрайт
Спиртные
Пиво
Водка
Как-то так, список довольно длинный,все писать не буду. Так вот,
нужно узнать к какому корневому узлу, принадлежит выбранный
дочерний? Конкретно что хлеб это- продукты,а соки это - напитки и т.д...
← →
Михалыч (2016-02-10 23:12) [1]Чую копать надо в сторону Parent, а как накодить не знаю.. ((
← →
Михалыч (2016-02-10 23:24) [2]TreeView1.Selected.Parent.Text дает предыдущего а не главного.. ((
Тоесть если выбрать Фанта дает Соки, а нужно Напитки
Правильный результат лишь при выборе узлов первого уровня
← →
Михалыч (2016-02-10 23:30) [3]Сделал пока так:
if TreeView1.Selected.Level>0 then
begin
if TreeView1.Selected.Level=1 then ShowMessage(TreeView1.Selected.Parent.Text);
if TreeView1.Selected.Level=2 then ShowMessage(TreeView1.Selected.Parent.Parent.Text);
end;
Но наверно можно изящнее и короче написать.
А вот как незнаю..
← →
Германн © (2016-02-11 01:31) [4]
> Но наверно можно изящнее и короче написать.
Сомневаюсь. Ну разве что уже кем-то написана такая функция. Тогда весь код будет в одной строке.
← →
KilkennyCat © (2016-02-11 09:08) [5]
> можно изящнее и короче написать.
при таком количестве уровней не имеет смысла.
если уровней будет куча, можно в цикле получать родителя, пока не будет достигнут верхний уровень.
что-то типа: (не помню уже делфи)
node = TreeView.Selected;
While (node.level != 2) {
node = node.parent;
}
result = node.text;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.01.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c