Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TTreeView. Не добавляет дочерние ноды. Не могу понять почему. / 6 сообщений из 6, страница 1 из 1
25.08.2020, 21:52
    #39992391
svd
svd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
Всем привет.
Delphi XE8.

Кусок следующего кода:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
...
var
  i, j : Integer;
  ok: Boolean;
  PR: T_ES_ProjectRec;
  tn,tns : TTreeNode;
  scns: TArray<Integer>;
begin
  tv_projects.Items.Clear;

  tn := tv_projects.Items.Add(nil, 'LEV1');
  tv_projects.Items.AddChild(tn, 'LEV2');


  with tv_projects.Items do
    addchild(tv_projects.Items[add(nil, 'T1').Index], 'T2');
....



В результате выводит только LEV1, T1. Все узлы не выводятся. Свойства установлены следующие:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
object tv_projects: TTreeView
  Left = 0
  Top = 0
  Width = 310
  Height = 289
  Align = alClient
  AutoExpand = True
  HideSelection = False
  Indent = 19
  PopupMenu = PopupMenu1
  ReadOnly = True
  RowSelect = True
  SortType = stData
  TabOrder = 1
end



В чем накосячил? Вариант "оно само" не правильный.
...
Рейтинг: 0 / 0
25.08.2020, 21:58
    #39992393
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
svd
with tv_projects.Items do
addchild(tv_projects.Items[add(nil, 'T1').Index], 'T2');
Кровь из глаз.
И да, это оно не само. Ты сам этого хотел.

.Index это номер по порядку внутри одного узла дерева а не номер во всем массиве items.
...
Рейтинг: 0 / 0
25.08.2020, 22:15
    #39992401
svd
svd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
ок товарисч. отладчик показывает теже самые значения адреса ноды.

Почему же тогда формирование второго узла тоже проходит без показа дочернего узла?

Забыл еще уточнить: курица в яйце, яйцо в утке. TreeView создано во фрейме, фрейм вставлен в форму. В редактрование dfm заходил и удалял ВСЕ свойства, которые могут влиять (оставил только name, left, top, with, height, alignment, popupmenu). свойства подчищены как в фрейме, так и в форме, где отображается.
...
Рейтинг: 0 / 0
25.08.2020, 23:06
    #39992406
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
Что мешает сделать так?

addchild(add(nil, 'T1'), 'T2');

А вообще я без понятия, что ты там пытаешься за дерево изобразить.
Мой хрустальный шар на ремонте.
...
Рейтинг: 0 / 0
25.08.2020, 23:21
    #39992407
svd
svd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
Я пытаюсь рабобраться почему не работает. Реальный код добавления дерева находится за многоточием. Что бы не тратить время на объяснение а что там и как там, просто смоделировал ситуации простого добавления узлов в дерево - на них уже стало понятно, что код построения дерева нипричем, а что то с отображением.

Далее решил двумя разными типами добавлять. Первая строчка - извлечение по индексу из Items - множество примеров на stackoverflow посвящено именно такому: добавить корневую ноду, найти ее в items и использовать как родителя.

Второй вариант добавления - как написано в документации Embarcadero.
...
Рейтинг: 0 / 0
27.08.2020, 12:38
    #39992914
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
svd,

Что-то вы делаете "не так"
вотя повторил ваш код, получил все 4 ноды, но не так как вы преполагали:

Ну а что за значение в TTreeNode.Index - это вы прочитаете в справке
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TTreeView. Не добавляет дочерние ноды. Не могу понять почему. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]