156______________________________________________Глава 3

csDropDown     Выпадающий список со строками одинаковой высоты и с ок-
ном редактирования, позволяющим пользователю вводить
или редактировать текст.

csSimple        Развернутый список со строками одинаковой высоты и с ок-
ном редактирования, позволяющим пользователю вводить
или редактировать текст.

csDropDownList Выпадающий список со строками одинаковой высоты, не со-
держащий окна редактирования.

Выбор пользователя или введенный им текст можно определить по значению
свойства Text. Если же надо определить индекс выбранного пользователем элемен-
та списка, то можно воспользоваться обсуждавшимся в компоненте ListBox свой-
ством Itemlndex. Все сказанное выше об Itemlndex и о задании его значения по
умолчанию справедливо и для компонента ComboBox. Причем для ComboBox за-
дание начального значения Itemlndex еще актуальнее, чем для ListBox. Если на-
чальное значение не задано, то в момент запуска приложения пользователь не уви-
дит в окне компонента одно из возможных значений списка и, вероятнее всего, не
очень поймет, что с этим окном надо делать.

Если в окне проводилось редактирование данных, то Itemlndex = -1. По этому
признаку можно программно определить, что редактирование проводилось.

Свойство MaxLength определяет максимальное число символов, которые по-
льзователь может ввести в окно редактирования. Если MaxLength == 0, то число
вводимых символов не ограничено.

Как и в компоненте ListBox, свойство Sorted позволяет упорядочить список
по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а
по алфавиту.

3.2.8 Компоненты отображения иерархических данных —
TreeView, Outline, ListView

Компоненты TreeView и Outline служат для отображения иерархических дан-
ных в виде дерева (см. пример на рис. 3.3), в котором пользователь может выбрать
нужный ему узел или узлы. Иерархическая информация может быть самой раз-
^ ной: структура некоторого предприятия, структура документации учреждения,
структура отчета и т.п. С каждым узлом дерева могут быть связаны некоторые
данные.

Возможности компонента TreeView несколько шире, чем компонента Outline,
К тому же TreeView — 32-разрядный компонент, a Outline — 16-разрядный. Поэ
тему Outline целесообразно использовать только в 16-разрядных приложениях.

Основным свойством TreeView, содержащим информацию об узлах дерева, яв-
ляется Items. Это свойство содержит список узлов, каждый из которых является
объектом типа TTreeNodes, обладающим своими свойствами и методами. Доступ к
информации об отдельных узлах осуществляется через свойство Item[int Index].
Например, TreeViewl->Items->Item[0] — это узел дерева с индексом 0 (первый
узел дерева).

В процессе проектирования формирование дерева осуществляется в окне ре-
дактора узлов дерева, представленном на рис. 3.10. Это окно вызывается двойным
щелчком на компоненте TreeView или нажатием кнопки с многоточием около
свойства Items в окне Инспектора Объектов.

Кнопка New Item (новый узел) позволяет добавить в дерево новый узел. Он бу-
дет расположен на том же уровне, на котором расположен узел, выделенный кур-
сором в момент щелчка на кнопке New Item.