Компоненты 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, если данный узел развернут (показываются его дочерние узлы) |