Компонент TAvDBGrid
Автор Юрий Астафьев, Российская Федерация

Сетка с иерархическим многострочным заголовком

Сайт обновлён:

23 июля 2020 г.

Контакты:

тел.:
+7 (926) 223-86-06

e-mail:
contact@forpostsoft.ru

Cвойства компонента AvDBGrid

В данном разделе рассматриваются новые, по сравнению с родительским классом, свойства компонента TAvDBGrid, обеспечивающие оригинальный дополнительный функционал.

Декларация класса TAvDBGrid

Здесь приведено описание public и published разделов класса заголовка TAvTitle и класса компонента TAvDBGrid.

TAvTitle = class(TCollectionItem) public constructor Create(Collection: TCollection); override; destructor Destroy; override; function OwnerGrid : TAvDBGrid; published property TitleOptions: TTitleDrawOpts read FTitleOptions write SetTitleOption default defaultTitleOpt; property Caption : String read GetCaption write SetCaption stored IsUniTitle; property Color : TColor read GetColor write SetColor stored IsUniTitle; property Font : TFont read GetFont write SetFont stored IsUniTitle; property PopUpMenu : TPopupMenu read FPopupMenu write FPopupMenu; end; TTitleclass = class of TAvTitle; TAvTitles = class(TCollection) public constructor Create(Grid: TAvDBGrid; Itemclass: TTitleclass); property Items[Index: Integer]: TAvTitle read GetTitle write SetTitle; default; end; TAvDBGrid = class(TCustomDBGrid) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure DrawTitles; published property AvTitles : TAvTitles read FAvTitles write SeTAvTitles; property ColsStretch : TColsStretch read FColsStretch write SetColsStretch default tcNoStretch; property MinColWidth : Integer read FMinColWidth write SetMinColWidth default DirectMinWidth; property ColorBarFon : TColor read FColorBarFon write FColorBarFon default clNavy; property ColorBarTxt : TColor read FColorBarTxt write FColorBarTxt default clWhite; property ColorTitles : TColor read GetColorTitles write SetColorTitles default clBtnFace; property FonZebra : boolean read FFonZebra write SetFonZebra default true; property Options : TDBGridOptions read GetOptions write SetOptions default [dgEditing, dgTitles, dgColumnResize, dgColLines, dgTabs, dgAlwaysShowSelection, dgCancelOnExit]; property TitlesFont : TFont read GetTitlesFont write SetTitlesFont; property OnTitleClick: TTitleClickEvent read FOnTitleClick write FOnTitleClick; end;

Характеристика новых свойств

Новые свойства компонента
Свойство Характеристика Значение по умолчанию
AvTitles Массив свойств заголовков (TAvTitle)
ColsStretch Свойство определяет тип алгоритма используемый для подгонки ширины столбцов под размер сетки. Может принимать одно из следующих значений:
  • tcNoStretch - подгонка не производится, при изменении ширины одного столбца, ширина всех других столбцов не изменяется;
  • tcRightStretch - при изменении ширины одного столбца, подгонка производится за счет изменения ширины столбцов расположенных справа от него;
  • tcAllStretch - при изменении ширины одного столбца, подгонка производится за счет изменения ширины всех других столбцов.
tcNoStretch
MinColWidth Минимально допустимая ширина столбца. Ширина столбца не может принять значение меньше этой величины при использовании средств визуального проектирования. 18 pixel
ColorBarFon Цвет фона активной строки clNavy
ColorBarTxt Цвет шрифта активной строки clWhite
ColorTitles Цвет фона всех заголовков. Изменение данного свойства приводит к соответствующему изменению цвета всех заголовков. В дальнейшем для каждого заголовка можно установить свой индивидуальный цвет фона. clBtnFace
FonZebra Установка фона типа «Зебра» — различная яркость фона для четных и нечетных строк сетки. true
TitlesFont Шрифт всех заголовков. Изменение данного свойства приводит к соответствующему изменению шрифта у всех заголовков. В дальнейшем для каждого заголовка можно установить свой индивидуальный шрифт. Значение по умолчанию родительского класса
OnTitleClick Обработчик события при клике левой кнопки мыши на заголовке.
В процедуру в качестве параметра передаётся заголовок Title: TAvTitle
Данный обработчик перекрывает обработчик родительского класса TCustomDBGrid, в который в качестве параметра передавался столбец Column: TColumn.

Свойства заголовков TAvTitle
Свойство Назначение Значение по умолчанию
TitleOptions Опции форматирования текста заголовка представлены в виде трёх независимых групп.
Группа 1 — горизонтальное выравнивание:
  • dtLeft — выравнивание по левому краю;
  • dtRight — выравнивание по правому краю;
  • dtCenter — выравнивание по центру.
Группа 2 — вертикальное выравнивание:
  • dtTop — выравнивание по верхнему краю;
  • dtBottom — выравнивание по нижнему краю;
  • dtVcenter — вертикальное выравнивание по центру.
Группа 3 — переносы внутри заголовка:
  • dtStrBreak — текст заголовка может размещаться в несколько строк, при переносе на следующую строку разрешается разрыв текста по границе слова;
  • dtCharBreak — при переносе текста заголовка на следующую строку разрешается разрыв текста внутри слов (имеет смысл только при наличии опции dtStrBreak).
[dtCenter, dtVcenter, dtCharBreak, dtStrBreak]
Caption Текст выводимый в заголовке
Color Цвет заголовка TAvDBGrid.ColorTitles
Font Шрифт заголовка TAvDBGrid.TitlesFont
PopUpMenu Всплывающее меню, появляющееся при клике правой кнопкой мыши на заголовке

Установки по умолчанию и ограничения

Свойство компонента Options имеет по умолчанию в своём составе следующий набор опций:

[dgEditing, dgTitles, dgColumnResize, dgColLines, dgTabs, dgAlwaysShowSelection, dgCancelOnExit]

Для обеспечения некоторых характерных свойств компонента TAvDBGrid на состав опций свойства Options родительского класса TCustomDBGrid наложены следующие ограничения. Из всего множества опций, используемых при формировании свойства Options во время проектирования, некоторые опции не могут быть включены в набор, а некоторые не могут быть исключенны из набора:

Опция Наличие в наборе Обеспечивает свойство
dgColLines Всегда в присутствует Вертикальные линии присутствуют всегда
dgRowLines Всегда отсутствует Горизонтальные линии всегда отсутствуют
dgIndicator Всегда отсутствует Индикатор всегда отсутствует

Курсор сетки всегда выделяет всю строку независимо от наличия/отсутствия опции dgRowSelect в свойстве Options.



Copyright © 2011-2016 Астафьев Ю.Б.