например сортировки
Checkboxes Имеет значение True, если в начале каждой строки списка отображается
флажок
ColumnClick Имеет значение True, если заголовкам столбцов разрешено работать
в режиме кнопок: допустимы щелчки на заголовках и обработка этих щелчков. Такая возможность
полезна для сортировки содержимого списка щелчком на его заголовке
FlatScrollBars Имеет значение True, если полосы прокрутки должны выглядеть плоскими
FullDrag Имеет значение True, если разрешается полностью перерисовывать заголовки
столбцов во время перетаскивания, а не только отображать границы
GridLines Имеет значение True, если между элементами списка рисуются
разделительные линии
HideSelection Имеет значение True, если выделение текущего элемента списка
автоматически сбрасывается при переключении фокуса на другой элемент формы. Такая
возможность используется, когда ведется одновременная работа с несколькими списками,
что позволяет быстро определить, какой список имеет фокус
HotTrack Имеет значение True, если выбор элемента осуществляется наведением
на него указателя (без щелчка)
HotTrackStyles Если значение свойства HotTrack равно True, то способ выделения
элемента определяется комбинацией значений данного свойства (множества). Возможные значения
— htHandPoint (указатель мыши принимает вид руки), htUnderlineCold (невыделенные элементы
подчеркиваются), htUndertineHot (выделенный элемент подчеркивается)
HoverTime Если значение свойства HotTrack равно True, то данное свойство
определяет время (в миллисекундах), по истечении которого после наведения на него указателя
элемент будет считаться выделенным
IconOptions Способ упорядочения значков в списке. Имеет три подсвойства. Подсвойство
Arrangement определяет порядок выравнивания (слева направо или сверху вниз). Подсвойство
AutoArrange определяет, будут ли значки переупорядочиваться автоматически. Подсвойство
WrapText определяет, будет ли заголовок выравниваться по ширине значка или располагаться
слева от него
Largelmages Список картинок-значков. Стиль отображения определен значением vslcon
MuLtiSeLect Имеет значение True, если разрешается выбирать несколько элементов списка
OwnerData Имеет значение True, если обработка содержимого списка выполняется в
тексте программы. Подобный список называется виртуальным, и разработчик берет на себя
программирование его основных функций, связанных с динамическим формированием значений
элементов. Это требуется при обработке больших наборов данных
OwnerDraw Имеет значение True, если рисование списка и его элементов явно выполняется
в тексте программы по алгоритму разработчика
RowSelect Имеет значение True, если разрешается выделять целую строку списка
ShowColumnHeaders Имеет значение True, если отображаются заголовки столбцов
SmalUmages Список картинок-значков. Стиль отображения определен значением,
отличающимся от vslcon
SortType Способ автоматической сортировки списка. Возможные значения — stNone
(сортировка не выполняется), stData (сортировка выполняется на основе значений свойства
Data каждого элемента списка), stText (сортировка выполняется на основе значений свойства
Caption каждого элемента списка), stBoth (сортировка выполняется на основе значений как
свойства Data, так и свойства Caption)
Statelmages Statelmages Список картинок, отражающих промежуточное состояние объекта
В программе-самоучителе в примере использования данного компонента реализовано многими пунктами.
1.14. Компонент Панель заголовков (THeaderControl)
Панель заголовков позволяет разместить на форме заголовки произвольных элементов. Порядок и размеры этих заголовков можно менять. Простой алгоритм работы данного компонента позволяет подстраивать размеры других объектов под размеры разделов заголовка.
В процессе проектирования компонента настраиваются следующие свойства.
Свойства класса THeaderControl
____________________________________________________________________________________________________
Свойство Назначение
____________________________________________________________________________________________________
DragReorder Имеет значение True, если разрешено менять порядок разделов заголовка
с помощью метода перетаскивания
FullDrag Имеет значение True, если в ходе перетаскивания рисуется не граница раздела,
а весь раздел целиком
HotTrack Имеет значение True, если при наведении указателя на заголовок он выделяется
другим цветом
Images Ссылка на объект ImageList, содержащий картинки для разделов заголовка
Style Вид разделов заголовка. Возможные значения — hsButtons (объемный), hsFlat
(плоский)
____________________________________________________________________________________________________
Сами разделы задаются в свойстве Sections (класс THeaderSections, коллекция объектов класса THeaderSection) с помощью редактора, работа которого описывалась в разделе, посвященном классу TCollection.
Каждый из разделов заголовка (THeaderSection) может работать как кнопка, реаги-рующая на щелчки, если свойство AllowClick имеет значение True. Номер картинки (если она требуется) указывается в свойстве Imagelndex, ширина раздела — в свой¬стве Width. Надпись (заголовок раздела) хранится в свойстве Text. Раздел можно рисовать программно — тогда в свойстве Style указывается значение hsOwnerDraw.
Использовать панель заголовков можно, только обрабатывая предназначенные для нее сообщения. Таких сообщений пять.
Сообщения класса THeaderSection
_____________________________________________________
Сообщение Условие генерации
_____________________________________________________
OnDrawSection Перерисовка раздела, если значение его
свойства Style равно hsOwnerDraw
OnSectionclick Щелчок мыши на разделе
OnSectionDrag Перетаскивание раздела в новую позицию
OnSectionResize Произошло изменение размеров раздела
OnSectionTrack Идет процесс изменения размера раздела
_____________________________________________________
Создадим два раздела с заголовками Левый и Правый. Под каждым из заголовков разместим панель (компонент TPanel) так, чтобы ее размер совпадал с размером раздела заголовков. Укажем для левой панели цвет clRed, а для правой — clLime.
При изменении размеров раздела заголовка тре-буется, чтобы пропорционально менялся размер присоединенной панели, а при щелчке на заголовке должен меняться цвет панели. Для этого надо обра-ботать события OnSectionTrack и OnSectionclick.
В программе-самоучителе в примере использования данного компонента реализовано три секции компонента.
1.15. Компонент Панель заголовков (THeaderControl)
Редкая программа обходится без строки состояния, в которой указывается «горячая» подсказка и выводится дополнительная информация. Строка состояния обычно делится на несколько панелей.
Сразу после размещения компонента на форме строка состояния автоматически прикрепляется к нижней части формы. В дальнейшем она сама подстраивается под изменяемую ширину формы. Высоту строки подсказки можно менять либо с помощью мыши, либо с помощью свойства Height.
В самом простом варианте строка состояния работает, как одна большая панель. При этом свойство SimplePanel получает значение True, а выводимый текст записывается в свойство SimpleText. Характеристики шрифта, которым будут делаться надписи, задаются, как обычно, в свойстве Font, если значение свойства UseSystemFont (Использовать системный шрифт) равно False.
Текст в строке состояния можно привязать к текущей подсказке любого элемента управления на форме, тогда в строке состояния будет автоматически отображаться подсказка для текущего элемента управления. Для этого свойство AutoHint должно иметь значение True. С помощью свойства SizeGrip можно задать отображение в правом нижнем углу строки состояния небольшого треугольника, позволяющего изменять размер формы.
Часто используется и свойство Panels (тип TStatusPanels, наследник класса TCollection), представляющее собой коллекцию объектов типа TStatusPanel, панелей, из которых составляется строка состояния. Для их создания и обработки применяется стандартный редактор коллекций.
Главные свойства класса TStatusPanel перечислены ниже.
Свойства класса TStatusPanel
Свойство Назначение
Alignment Способ выравнивания текста на данной панели
Bevel Вид панели (выпуклая, вдавленная или обычная)
Style Определяет вывод текста или программное формирование содержимого
Text Текст панели
Width Ширина панели в пикселах
В программе-самоучителе в примере использования данного компонента реализовано три бара.
1.16. Компонент Панель инструментов (TToolBar)
Эта панель используется для управления быстрыми командными кнопками и другими «горячими» элементами управления. Она позволяет формировать многострочные наборы инструментов.
Сразу после создания панель инструментов автоматически (как и строка состояния) размещается у края формы, только у верхнего, а не у нижнего.
Свойства компонента TToolBar
____________________________________________________________________________________________________
Свойство Назначение
____________________________________________________________________________________________________
EdgeBorders Сложное свойство. Определяет наличие или отсутствие видимых краев
(полосок) с каждой из четырех сторон панели
Edgelnner, EdgeOuter Вид окаймляющих полос (вдавленный, выпуклый) с внутренней и
внешней стороны
ButtonWidth, ButtonHeight Ширина и высота (в пикселах) элементов управления, располагаемых
на панели
Disabledlmages Указывает на объект типа TImageList (список картинок), который
содержит изображения кнопок, отображающих их «отключенное» состояние. Если значение
для данного свойства не задано, используются обычные картинки кнопок, преобразованные
к палитре, содержащей только тона серого
Flat Имеет значение True, если используется стиль «прозрачных» кнопок, когда фон