Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужна помощь по TreeView [D7, XP]


Михалыч ©   (2016-02-10 22:07:00) 

Здравствуйте мастера! Помогите кто знает пожалуйста. Есть дерево с тремя уровнями вложенности,например:
Продукты
   Хлебо-булочные
             Хлеб
             Булки
   Мясные изделия
            Котлеты
            Отбивные
Напитки
   Соки
            Фанта
            Спрайт
   Спиртные
            Пиво
            Водка
Как-то так, список довольно длинный,все писать не буду. Так вот,
нужно узнать к какому корневому узлу, принадлежит выбранный
дочерний? Конкретно что хлеб это- продукты,а соки это - напитки и т.д...


KilkennyCat   (2016-02-11 09:08:00) [1]


> можно изящнее и короче написать.

при таком количестве уровней не имеет смысла.
если уровней будет куча, можно в цикле получать родителя, пока не будет достигнут верхний уровень.

что-то типа: (не помню уже делфи)
node = TreeView.Selected;
While (node.level != 2) {
    node = node.parent;
}
result = node.text;


Германн   (2016-02-11 01:31:00) [2]


> Но наверно можно изящнее и короче написать.

Сомневаюсь. Ну разве что уже кем-то написана такая функция. Тогда весь код будет в одной строке.


Михалыч   (2016-02-10 23:30:00) [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-10 23:24:00) [4]

TreeView1.Selected.Parent.Text дает предыдущего а не главного.. ((
Тоесть если выбрать Фанта дает Соки, а нужно Напитки
Правильный результат лишь при выборе узлов первого уровня


Михалыч   (2016-02-10 23:12:00) [5]

Чую копать надо в сторону Parent, а как накодить не знаю..  ((


Наверх

Титульная страница Поиск, карта сайта Написать письмо