Компоненты TTreeView и TListView
Эти компоненты известны каждому, кто хоть раз видел Windows 98 или Windows 2000. Именно на их базе создано ядро пользовательского интерфейса – оболочка Explorer, да и большинство других утилит Windows. Они включены в библиотеку ComCtl32.dll и доступны программистам.
Компонент TTreeView называют деревом (рис. 5.3).
Компонент TTreeView – правопреемник компонента TOutiine, разработанного Borland еще для Delphi 1 и предназначен для отображения иерархической информации. Его "сердцем" является свойство:
property Items: TTreeNodes;

Рис. 5.3. Внешний вид компонента TTreeView
Данное свойство – это список всех вершин дерева, причем список, обладающий дополнительными полезными свойствами. Каждый из элементов списка – это объект типа TTreeNode. Свойства его сведены в табл. 5.3.
Таблица 5.3. Список свойств объекта TTreeNode.
| Объявление | Описание | 
|---|---|
| property HasChildren: Boolean; | Равно True, если узел имеет дочерние узлы | 
| property Count: Integer; | Счетчик числа дочерних узлов данного узла | 
| property Item [Index: Integer]: TTreeNode; | Список дочерних узлов | 
| property Parent: TTreeNode; | Ссылка на объект – родительский узел (верхнего уровня) | 
| property Level: Integer; | Уровень, на котором находится узел. Для корневого узла это свойство равно 0; его потомки имеют значение Level=1 и т. д. | 
| property Text: string; | Текст узла | 
| property Data: Pointer; | Данные, связанные с узлом | 
| property TreeView: TCustomTreeView; | Ссылка на компонент TTreeView, в котором отображается данный узел | 
| property Handle: HWND; | Дескриптор окна компонента TTreeView, в котором отображается данный узел | 
| property Owner: TTreeNodes; | Ссылка на компонент TTreeNodes, которому принадлежит данный узел | 
| property Index: Longint; | Индекс узла в списке своего родителя | 
| property IsVisible: Boolean; | Равно True, если узел видим (все его родительские узлы развернуты) | 
| property Itemld: HTreeltem; | Дескриптор узла (применяется при вызове некоторых методов) | 
| property Absolutelndex: Integer; | Абсолютный индекс узла в списке корневого узла | 
| property Imagelndex: Integer; | Индекс картинки, соответствующей невыбранному узлу в нормальном состоянии | 
| property Selectedlndex: Integer; | Индекс картинки, соответствующей выбранному узлу | 
| property Overlaylndex: Integer; | Индекс картинки, которая может накладываться поверх основной | 
| property Statelndex: Integer; | Индекс дополнительной картинки, отражающей состояние узла | 
| property Selected: Boolean; | Равно True, если данный узел выбран пользователем | 
| property Focused: Boolean; | Равно True, если данный узел выбран пользователем для редактирования текста узла | 
| property Expanded: Boolean; | Равно True, если данный узел развернут (показываются его дочерние узлы) | 
