Компоненты 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).
Рис. 5.4. Внешний вид редактора узлов компонента TTreeView