154______________________________________________Глава 3

Заголовок состоит из ряда секций, причем пользователь во время выполнения при-
ложения может изменять ширину отдельных секций с помощью мыши.

Основное свойство компонента HeaderControl — Sections. Оно является спис-
ком объектов типа THeaderSection, каждый из которых описывает одну секцию
заголовка. Свойство Sections можно задать во время проектирования, нажав кноп-
ку с многоточием рядом с этим свойством в Инспекторе Объектов или просто сде-
лав двойной щелчок на компоненте HeaderControl. В обоих случаях перед вами от-
кроется окно редактора заголовков, представленное на рис. 3.9. Кнопка Add New
(крайняя левая) позволяет добавить новую секцию в заголовок, кнопка Delete Se-
lected (вторая слева) — удалить секцию, кнопки Move Selected Up и Move Selected
Down (кнопки со стрелками) позволяют изменять последовательность секций.

Рис. з.9                                  ^йддшаяяЕйкд^и

Окно редактора заголовков                               'ТзЖ'! ^^.^^^Р^^-гЩМ

О • Заголовок 1                         ;i
1 - Заголовок 2

После того, как вы добавили секцию и установили на ней курсор, в окне Инс-
пектора Объектов появится множество свойств этого объекта. В свойстве Text вы
можете задать текст заголовка. Свойства MinWidth и MaxWidth определяют соот-
ветственно минимальную и максимальную ширину секции в пикселях. Только в
этих пределах пользователь может изменять ширину секции курсором мыши. Зна-
чение ширины по умолчанию задается значением свойства Width. При изменении
ширины секции во время выполнения генерируется событие OnSectionResize. В
обработчик этого события надо вставить операторы, синхронно изменяющие ши-
рину того, заголовком чего является секция: это может быть столбец какой-то таб-
лицы, какая-то панель и т.п.

Свойство AllowClick, равное по умолчанию true, определяет поведение секции
как кнопки при щелчке пользователя на ней. В этом случае при щелчке генериру-
ется событие OnSectionClick компонента HeaderControl, в обработчик которого и
надо вставить операторы, выполняющие необходимые действия.

Свойство Style может иметь значение hsText — в этом случае в заголовке ото-
бражается значение свойства Text, или hsOwnerDraw — в этом случае отображает-
ся то, что рисуется непосредственно на канве операторами, записанными в обра-
ботчике события OnDrawSection компонента HeaderControl.

Компонент Header обладает существенно меньшими возможностями, чем He-
aderControl. В нем свойство Sections имеет тип TStrings и содержит только тек-
сты заголовков, не позволяя регулировать пределы изменения ширины секций, их
функционирование как кнопок и т.д. Таким образом, Header имеет смысл исполь-
зовать только для 16-разрядных приложений.

3.2.7 Компоненты выбора из списков — ListBox, CheckListBox
и ComboBox

Компоненты ListBox и ComboBox отображают списки строк. Они отличаются
друг от друга прежде всего тем, что ListBox только отображает данные и позволяет
пользователю выбрать из них то, что ему надо, a ComboBox позволяет также ре-
дактировать данные. Кроме того различается форма отображения списков. ListBox
отображает список в раскрытом виде и автоматически добавляет в список полосы
прокрутки, если все строки не помещаются в окне компонента. ComboBox позво-