2. в StringList, а потом StringList.SaveToFile и делов то... по поводу индексации, мне нужно так: допустим идет нумерация сверху: 1,2,3, третья ветка допустим оказалась с дочерними ветками, окей, нумерация ждет, нумерацию дочерних веток третьей ветки опять начинаем с 1, и т.д. для любой вложенности, уж поверьте я найду как использовать... что кстати за режим сортировки? (не работал раньше с этим компонентом)
Работали... думаю каждый день по многу раз...

Нажмите "Пуск -> Выполнить (Run)..." Наберите "explorer". Вот он TreeView. Узнали?

Выберите узел... Ну например "C:\Program Files"... "дети" есть в узле?

Отсортированы по алфавиту? Вас не удивляет что они "пронумерованы" не в том порядке как Вы программы устанавливали на компьютер?

Нажмите "Вид (View) -> Сортировать иконки по... (Arrange Icons by)" по дате модификации...
Ну? куда делась Ваша "
нумерация дочерних веток третьей ветки"? И где собственно теперь ветка которую Вы пронумеровали как "ветка номер 3"?
Все что есть уникального у ветки это:
1) Узел родитель (Node.Parent)
2) Уровень вложенности относительно корня (Node.Level)
3) Индекс в "куче узлов" (Node.Index)
ну и скорее всего какие-то данные связанные с этим узлом (Node.Data).
И даже Node.Index ничего не сможет Вам сказать о месте расположения узла в дереве...
Скажем Вы перемещаете подкаталог "C" из каталога "A" в каталог "B"... У "C" поменяется Node.Parent и может быть Node.Level. Node.Index останется тот же.
Понимаете о чем я? Какая может быть индексация и как ее на практике использовать (какой в ней смысл), если Все равно каждый раз, чтобы добраться до узла "C", Вам придется "бежать" от корня (TreeView1.Items.GetFirstNode

вызывая Node.GetNext, до тех пор пока по каким-то "частным" параметрам Вам не попадется нода "оочень похожая" на ноду "C". Говорю похожая, потому что (чтобы окончательно убедиться что это именно она) Вам придется делать дополнительные проверки... Возможно даже добежать до конца и проверить нету ли еще узлов с такими-же параметрами...
Ведь никто не даст Вам гарантии что в соседних папках не окажутся подпапки с одинаковыми именами или даже файлами...

Нет... конечно (на короткое время) можно создать некий индексный массив. Например создать экземпляр класса TList и добавить туда ссылки на определенные узлы (метод TList.Add). Вот в этом есть определенный смысл... чтобы не бегать по дереву а обращаться к определенному узлу... типа (List
as TTreeNode).Data.
Но индексировать дерево? 