158______________________________________________Глава 3

Insert(TTreeNode* Node,             Вставляет новый узел с текстом S сра-
const System::AnsiString S)   зу после узла Node на то же уровень.
Индексы последующих узлов увеличи-
ваются на 1

AddChild(TTreeNode* Node,          Добавляет узел с текстом S как послед-
const System::AnsiString S) ний дочерний узла Node

AddChildFirst(TTreeNode* Node,      Вставляет новый узел с текстом S как
const System::AnsiString S) первый из дочерних узлов узла Node.
Индексы последующих узлов увеличи-
ваются на 1

Каждый из этих методов возвращает вставленный узел.

Ниже в качестве примера приведен код, формирующий то же дерево, которое
вы можете видеть на рис. 3.3 и 3.10.

TreeViewl->Items->Clear(); // очистка списка

// добавление корневого узла "производство" (индекс 0)

TreeViewl->Items->Add(NULL, "производство");

/* добавление дочених узлов "цех 1" — "цех 3" (индексы 1 — 3*/
TreeViewl->Items->AddChild(TreeViewl->Items->Item[0],"цех 1") ;

TreeViewl->Items->AddChild(TreeViewl->Items->Item[0],"цех 2") ;

TreeViewl->Items->AddChild(TreeViewl->Items->Item[0],"цех З") ;

/* добавление корневого узла "управление" после узла "производство"

(индекс 4)*/

TreeViewl->Items->Add(TreeViewl->Items->Item[0], "управление") ;

/* добавление дочених узлов "администрация" и "бухгалтерия" узла

"управление"*/

TreeViewl->Items->AddChild(TreeViewl->Items->Item[4],"администрация") ;

TreeViewl->Items->AddChild(TreeViewl->Items->Item[4],"бухгалтерия");

Дерево может быть сколь угодно разветвленным. Например, следующие опе-
раторы добавляют дочерние узлы «бригада I» и «бригада 2» в сформированный ра-
нее узел «цех I»:

TreeViewl->Items->AddChild(TreeViewl->Items->Item[l], "бригада I");

TreeViewl->Items->AddChild(TreeViewl->Items->Item[l], "бригада 2") ;

Текст, связанный с некоторым узлом, можно найти с помощью его свойства
Text. Например, TreeViewl->Items->Item[l]->Text — это надпись «цех I».

С каждым узлом может быть связан некоторый объект. Добавление таких уз-
лов осуществляется методами AddObject, AddObjectFirst, InsertObject, AddChil-
dObject, AddChildObjectFirst, аналогичными приведенным выше, но содержащи-
ми в качестве параметра еще указатель на объект: '

AddObject(TTreeNode* Node,             Добавляет новый узел с текстом S и
const System::AnsiString S, void * Ptr) объектом Ptr как последний узел

уровня, на котором расположен Node

AddObjectFirst(TTreeNode* Node,        Вставляет новый узел с текстом S и
const System::AnsiString S, void * Ptr) объектом Ptr как первый из узлов
уровня, на котором находится
Node. Индексы последующих узлов
увеличиваются на 1