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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 21:46   #1
HOOCH94
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 21
По умолчанию TreeView

Всем привет
нашел для себя полезное свойство у триивью
Код:
TreeView1.Selected.Text
, но столкнулся с небольшой проблемой, мне нужно что бы компонент получал текст у всех подкаталогов игнорируя корневые каталоги

Например :
Цех - текст не получаем[корневой каталог]
____Цех №1 - получаем [подкаталог]
____Цех №2 - получаем [подкаталог]
Ашот - текст не получаем[корневой каталог]
____Рубэн - получаем[подкаталог]
____Рудик - получаем[подкаталог]
зарание кол-во "корневых коталогов дерева" не известно, помогите пожалуйста что здесь можно придумать

ps : или можно каждому корневому каталогу задать один какой нибудь индекс и потом проверить его условием if maintree.index =1 then что либо ?

Последний раз редактировалось HOOCH94; 11.04.2011 в 22:14.
HOOCH94 вне форума Ответить с цитированием
Старый 11.04.2011, 23:03   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

У каждого ноуда (каталога, подкаталога) есть свойство Level и его значение зависит от уровня вложенности.
У корневых ноудов оно ВСЕГДА равно нулю, у вложенных больше нуля.
Код:
var
  TN : TTreeNode;
begin
  TN := TV.Items.GetFirstNode;
  while TN <> nil do begin
    if TN.Level > 0 then
      <получаем текст>
    TN := TN.GetNext;
  end;
end;
Прик вне форума Ответить с цитированием
Старый 12.04.2011, 14:50   #3
HOOCH94
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 21
По умолчанию

при выполнении этого кода ничего вообще не происходит, как выделялись все так и выделяются (
Код:
procedure Tmainform.maintreeClick(Sender: TObject);
var
  TN : TTreeNode;
  begin
  TN := maintree.Items.GetFirstNode;
  while TN <> nil do begin
    if TN.Level > 0 then
maintab.Caption:=maintree.Selected.Text;
    TN := TN.GetNext;

  end;
end;
HOOCH94 вне форума Ответить с цитированием
Старый 12.04.2011, 18:25   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

А при чем здесь
Код:
maintab.Caption:=maintree.Selected.Text;
если надо брать текст от текущего ноуда в цикле:
Код:
maintab.Caption := TN.Text;
Чего здесь непонятного?

К тому же, текст от первого встретившегося в цикле вложенного "подкаталога" мы возьмем, но следующий встретившийся подкаталог перепишет maintab.Caption своим текстом.
Прик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Treeview Dgriz Помощь студентам 1 30.12.2010 00:38
TreeView Kugen Общие вопросы Delphi 2 13.12.2010 23:05
Treeview shaman888 Помощь студентам 0 28.04.2010 15:12
TreeView Superlotles Помощь студентам 1 29.11.2009 13:48
TreeView Help KWN, lnc Общие вопросы Delphi 12 03.03.2009 10:34