Иллюстрированный самоучитель по Delphi 7 для профессионалов

Компоненты TTreeView и TListView

Очень важным является свойство Data. Вместе с каждым узлом можно хранить не только текст, но и любые данные. Необходимо только помнить, что при удалении узла они автоматически не освобождаются, и это придется сделать вручную.

Для добавления узлов в дерево используются десять методов объекта TTreeNode (табл. 5.4).

Таблица 5.4. Методы, позволяющие добавлять узлы в объект TTreeNode.

Метод Описание
function Add (Node: TTreeNode; const S: string): TTreeNode; Узел добавляется последним в тот же список, что и узел Node
function AddObject (Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; To же, что и метод Add, но с узлом связываются данные из параметра Ptr
function AddFirst (Node: TTreeNode; const S: string): TTreeNode; Узел добавляется первым в тот же список, что и узел Node
function AddObjectFirst (Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; То же, что и метод AddFirst, но с узлом связываются данные из параметра Ptr
function AddChildfNode: TTreeNode; const S: string): TTreeNode; Узел добавляется последним в список дочерних узлов узла Node
function AddChildObject (Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; То же, что и метод AddChild, но с узлом связываются данные из параметра Ptr
function AddChildFirst (Node: TTreeNode; const S: string): TTreeNode; Узел добавляется первым в список дочерних узлов узла Node
function AddChildObjectFirst (Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; То же, что и метод AddChildFirst, но с узлом связываются данные из параметра Ptr
function Insert (Node: TTreeNode; const S: string): TTreeNode; Узел добавляется непосредственно перед узлом Node
function InsertObject (Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; То же, что и метод insert, но с узлом связываются данные из параметра Ptr

Во всех этих методах параметр s – это текст создаваемого узла. Место появления узла (первый или последний) также зависит от состояния свойства TTreeView.SortType:

type TSortType = (stNone, stData, stText, stBoth); property SortType: TSortType;

Если узлы дерева как-либо сортируются, то новые узлы появляются сразу в соответствии с правилом сортировки. По умолчанию значение этого свойства равно stNone.

Добавляя к дереву сразу несколько узлов, следует воспользоваться парой методов BeginUpdate и EndUpdate:

TreeViewl.Items.BeginUpdate;
ShowSubKeys(Root,1);
TreeViewl.Items.EndUpdate;

Они позволяют отключать и снова включать перерисовку дерева на экране на момент добавления (удаления, перемещения) узлов и тем самым сэкономить подчас очень много времени.

Помимо добавления узлов в дерево программным способом можно сделать это и вручную во время разработки. При щелчке в Инспекторе объектов на свойстве items запускается специальный редактор (рис. 5.4).

Иллюстрированный самоучитель по Delphi 7 для профессионалов › Элементы управления Win32 › Компоненты TTreeView и TListView
Рис. 5.4. Внешний вид редактора узлов компонента TTreeView

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.