Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2008, 23:36   #1
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию Вопросы по TreeView

Есть ли у treeView какое-нибудь свойство того что это родитель, а не потомок?

И еще: есть imagelist, так вот, всем родителям по умолчанию присвоено первое изображение(в свойствах), а мне надо, расскрытому родителю присвоить другое изображение из imagelist, а всем потомкам присваивать третье изображение. как это в коде прописать?
Родитель раскрылся у него второе изображение, у других родительских первое.
Черничный вне форума Ответить с цитированием
Старый 21.05.2008, 07:29   #2
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Свойство HasChildren возвращает True если у данного TTreeNode есть потомки и False если их нет (B := Node.HasChildren, где B логическая переменная, Node переменная типа TTreeNode).
Для установки изображения выбранного TTreeNode свойство SelectedIndex (Node.SelectedIndex := 2).
Свойство Expanded возвращет True если элемент раскрыт.

Последний раз редактировалось AlexandrSid; 21.05.2008 в 09:09.
AlexandrSid вне форума Ответить с цитированием
Старый 21.05.2008, 08:58   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы не твоем месте проверял не на родительство а на раскрытость. Раскрытому элементу присвой изображение 1, его детям изображение 2.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2008, 12:13   #4
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Что-то не очень ясно про то как картинку присвавивать. Какое свойство то? tree.selectindex...? (такого свойства у дерева нету)
Черничный вне форума Ответить с цитированием
Старый 21.05.2008, 13:10   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Родитель раскрылся у него второе изображение, у других родительских первое.
За раскрытие отвечает событие OnExpanding в неи меняй картинку раскрываемого.
За закрытие отвечает OnCollapsing.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2008, 13:27   #6
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Это свойство не дерева, а его элемента TTReeNode.
AlexandrSid вне форума Ответить с цитированием
Старый 21.05.2008, 13:44   #7
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Я думаю можно сделать так.

Код:
procedure TForm1.TreeViewExpanded(Sender: TObject; Node: TTreeNode);
  var SubNode:TTreeNode;
begin
    Node.SelectedIndex := 2;
    Node.ImageIndex := 2;
    SubNode := Node.GetFirstChild;
    while SubNode <> nil do begin
      SubNode.ImageIndex := 3;
      SubNode := Node.GetNextChild(SubNode);
    end;
end;


procedure TForm1.TreeViewExpanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean);
begin
  Node.ImageIndex := 1;
  Node.SelectedIndex := 1;
end;
AlexandrSid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView и БД Constellation БД в Delphi 12 27.09.2008 15:22
TreeView _SERGEYX_ Общие вопросы Delphi 1 01.09.2008 17:29
TreeView GetNodeAt() ?? Родион Компоненты Delphi 1 16.05.2008 16:09
Treeview forzi Помощь студентам 4 04.05.2008 23:50