powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
6 сообщений из 6, страница 1 из 1
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
    #39992391
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
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
TTreeView. Не добавляет дочерние ноды. Не могу понять почему.
    #39992393
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd
with tv_projects.Items do
addchild(tv_projects.Items[add(nil, 'T1').Index], 'T2');
Кровь из глаз.
И да, это оно не само. Ты сам этого хотел.

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

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

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

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

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

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

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

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

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


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