Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.04.2011, 22:19
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание TreeView и ImageList

Проблема в том что - надо присвоить отдельным пунктам отдельные иконки
Как при создании нового дочернего раздела
Код:
TreeView1.Items.Item.AddChild(TreeView1.Selected, 'Новый раздел');
присвоить ему отдельную иконку из списка ImageList...

или же есть другой способ создания нового раздела с определенными параметрами - просто я не врубился вроде в ручную при добавлении можно выбрать

ImageIndex
SelectedIndex
StateIndex
Expandedindex


а в моем случае - где они?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #2  
Старый 04.04.2011, 01:18
XTen XTen вне форума
Прохожий
 
Регистрация: 05.06.2009
Сообщения: 38
Репутация: 10
Сообщение

создай для начала банк иконок на пободии приведённого ниже кода
Код:
mas[0]:='ico/Node_0/True.bmp';
mas[1]:='ico/Node_0/False.bmp';
  ...
mas[8]:='ico/Node_3/False.bmp';

for i:=0 to 8 do
  begin
   bm.LoadFromFile(mas[i]) ;
   bm.Width:=16;
   bm.Height:=16;
   mask.Assign(bm);
   mask.Mask(clBlue);
   suiTreeView1.Images.Add(bm, mask);
  end;

далее присваивай иконки следующим образом
Код:
       node:=Form1.suiTreeView1.Items.AddChild(ParentNode, 'New node');
       node.ImageIndex:=2  // иконка(нумерация начинается с  0)(эта иконка при ожидании будет отображенна)
       node.SelectedIndex:=1; // эта иконка при наведении на узел
       node.HasChildren:=true; // ставим продолжение дерева(тоесть  + на открытие след. уровня
__________________
Нужна платная помощь в реализации пиши
ICQ: 410691984
Ответить с цитированием
  #3  
Старый 04.04.2011, 01:26
XTen XTen вне форума
Прохожий
 
Регистрация: 05.06.2009
Сообщения: 38
Репутация: 10
По умолчанию

меня больше интересует другой вопрос как при раскрытии следующего узла, не выделая его, узнать что в нём написанно
если вот так TreeView1.Selected.Text то он нам возратит чисто выделенный узел, но не узел у которого мы нажали на +
__________________
Нужна платная помощь в реализации пиши
ICQ: 410691984
Ответить с цитированием
  #4  
Старый 04.04.2011, 01:35
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

событие OnExpanding для TTreeView, параметр Node: Node.Text и т.д.
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя

Последний раз редактировалось Assistant, 04.04.2011 в 01:47.
Ответить с цитированием
  #5  
Старый 04.04.2011, 01:54
XTen XTen вне форума
Прохожий
 
Регистрация: 05.06.2009
Сообщения: 38
Репутация: 10
По умолчанию

Assistant, спасибо!
__________________
Нужна платная помощь в реализации пиши
ICQ: 410691984
Ответить с цитированием
  #6  
Старый 08.05.2011, 01:35
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

Вопрос - почему не работает
node.expandedimageindex:=2;
при разворачивании раздела изображения не меняется - почему?

и как перетаскивать разделы так что бы параметры не менялись - а то после перетаскивания - икона раздела меняется

если сделать так
Код:
 with TreeView1 do
  begin
    nodeTmp := Items.AddChild(TargetNode, SourceNode.Text);
    nodetmp.ImageIndex:=treeview1.Selected.SelectedIndex;
    nodetmp.SelectedIndex:=treeview1.Selected.SelectedIndex;
    for i := 0 to SourceNode.Count - 1 do
    begin
      MoveNode(nodeTmp, SourceNode.Item[i]);
    end;
  end;

то сохраняется параметры только выбранного раздела - а вот иконы подразделов не сохраняются....как быть?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #7  
Старый 08.05.2011, 03:11
Аватар для Kpyc
Kpyc Kpyc вне форума
Новичок
 
Регистрация: 05.05.2011
Сообщения: 75
Версия Delphi: Turbo Delphi
Репутация: 11
По умолчанию

подскажите процедурку чтобы раскрыть все дерево со всеми узлами
Ответить с цитированием
  #8  
Старый 08.05.2011, 06:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Kpyc
подскажите процедурку чтобы раскрыть все дерево со всеми узлами

Код:
TreeView1.Items[0].Expand(True);
Ответить с цитированием
  #9  
Старый 08.05.2011, 07:01
XTen XTen вне форума
Прохожий
 
Регистрация: 05.06.2009
Сообщения: 38
Репутация: 10
По умолчанию

Цитата:
Вопрос - почему не работает
при разворачивании раздела изображения не меняется - почему?
Код:
  nodetmp.ImageIndex:=treeview1.Selected.SelectedIndex;
  nodetmp.SelectedIndex:=treeview1.Selected.SelectedIndex;
может быть для начала нужно разные иконки передавать, а не индекс одной на открытие и закрытие раздела
__________________
Нужна платная помощь в реализации пиши
ICQ: 410691984
Ответить с цитированием
  #10  
Старый 08.05.2011, 10:15
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Kpyc
подскажите процедурку чтобы раскрыть все дерево со всеми узлами
TreeView1.FullExpand - развернуть все дерево
TreeView1.FullCollapse - свернуть все дерево
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 08.05.2011, 12:16
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

Цитата:
Сообщение от XTen
Код:
  nodetmp.ImageIndex:=treeview1.Selected.SelectedIndex;
  nodetmp.SelectedIndex:=treeview1.Selected.SelectedIndex;
может быть для начала нужно разные иконки передавать, а не индекс одной на открытие и закрытие раздела

Айблиин как я мог такую ошибку допустить...

а как быть подразделами - когда перетаскиваю раздел - который имеет под разделы - все иконки подраздела меняются на то что стоит у раздела - эту проблему как решить..
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #12  
Старый 08.05.2011, 12:20
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

АААА сссори решил проблему - если что вот код
Код:
procedure TForm1.MoveNode(TargetNode, SourceNode: TTreeNode);
var
  nodeTmp: TTreeNode;
  i: Integer;
begin
  with TreeView1 do
  begin
    nodeTmp := Items.AddChild(TargetNode, SourceNode.Text);
    nodetmp.ImageIndex:=treeview1.Selected.ImageIndex;
    nodetmp.SelectedIndex:=TreeView1.Selected.SelectedIndex;
    for i := 0 to SourceNode.Count - 1 do
    begin
      sourcenode.ImageIndex:=sourcenode.Item[i].ImageIndex;
      sourcenode.SelectedIndex:=sourcenode.Item[i].SelectedIndex;
      MoveNode(nodeTmp, SourceNode.Item[i]);
    end;
  end;
end;


Но как быть с -
Код:
node.expandedimageindex:=2;
не пашет оно....что делать?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter