Изменение свойств постоянных столбцов во время выполнения. TDBGridColumns как набор столбцов
Обратиться к конкретному постоянному столбцу компонента TDBGrid через его свойства можно как к TDBGndl .Columns.Itemsp] или как к TDBGrid l .Columns[i], где i принадлежит диапазону [0.. DBGridl.Columns.Count-1].
Свойство property Columns: TDBGridColumns; является набором столбцов TDBGrid. Методы TDBGrid. Columns мы рассмотрим ниже. В данный момент нас интересует возможность обращения к столбцам. Эту возможность обеспечивает массив property Items[Index: Integer]: TColumn; который доступен только во время выполнения программы.
Каждый i-ый столбец массива Items, в свою очередь, имеет свои собственные свойства и методы. Кратко перечислим их:
property Alignment: TAlignment; -
определяет выравнивание;property ButtonStyle: TColumnButtonStyle; -
определяет тип кнопки, назначенной столбцу (см. выше п.10.3.2); TColumnButtonStyle = (cbsAuto, cbsEllipsis, cbsNone);property Color: TColor;
- определяет цвет фона;property DropDownRows: Integer; -
определяет число строк в выпадающем списке возможных значений столбца;property Field: TField;
- ссылается на компонент TField, связанный со столбцом;property FieldName: String; -
определяет имя поля, связанного со столбцом;property Font: TFont; -
определяет шрифт для отображения содержимого столбца, его размер и цвет;property PickList: TStrings; -
определяет список возможных значений столбца;property ReadOnly: Boolean;
- разрешает (False) или запрещает (True) редактирование значений в столбце;property Title: TColumnTitle; -
определяет свойства и методы для работы с заголовком столбца:property Alignment: TAlignment; -
определяет выравнивание;property Caption : String; -
содержит текст заголовка столбца;property Color: TColor; -
определяет цвет фона заголовка столбца;property Font: TFont; -
определяет шрифт заголовка столбца, его размер и цвет;function DefaultFont: TFont; -
восстанавливает умалчиваемый шрифт;function DefaultCaption: String; -
восстанавливает умалчиваемый текст заголовка;function DefaultColor: TColor; -
восстанавливает умалчиваемый цвет заголовка;procedure RestoreDefaults; -
восстанавливает все умалчиваемые свойства заголовка столбца;property Width: Integer; -
определяет ширину столбца в пикселах;function DefaultWidth: Integer; -
восстанавливает умалчиваемую ширину столбца;function DefaultReadOnly: Boolean; -
восстанавливает умалчиваемое значение ReadOnly столбца;function DefaultColor: TColor; -
восстанавливает умалчиваемый цвет столбца;function DefaultFont: TFont;
- восстанавливает умалчиваемый шрифт столбца;procedure RestoreDefaults; -
восстанавливает все умалчиваемые свойства столбца.Пример.
Введем в приложение, рассмотренное выше, возможность динамического изменения свойств постоянных столбцов TDBGrid. Для этого разместим в форме компоненты обеспечивающие диалоги выбора шрифта и цвета - FontDialog! и ColorDialog соответственно, а также экранные кнопки, нажатие которых инициирует изменения свойств постоянных столбцов (рис. 10.10).Рис 10.10. Форма с кнопками, нажатие которых реализует изменение шрифта, фона у столбца и т заголовка столбца
Опишем следующие обработчики событий нажатия экранных кнопок:
// Обработчик нажатия кнопки "Шрифт столбцов" Вызывает диалог выбора шрифта и устанавливает выбранный шрифт для всех столбцов
procedure TForm1.AssigningColumnsFontButtonClick(Sender: TObject) ;
var i : Integer;
begin
// в диалоге выбора шрифта текущим будет шрифт 0-го столбца
FontDialog1.Font := DBGrid1.Columns.Items [0].Font;
IF FontDialog1.Execute THEN
FOR i := 0 TO DBGrid1.Columns.Count - 1 do
DBGrid1.Columns.Items[i].Font := FontDialog1.Font;
end;
// Обработчик нажатия кнопки "Шрифт заголовков" Вызывает диалог выбора шрифта и устанавливает выбранный шрифт для заголовков всех столбцов
procedure TForml.AssignFontToColumnsCaptionsButtonClick(Sender: TObject) ;
var i : Integer;
begin
// в диалоге выбора шрифта текущим будет шрифт заголовка 0-го столбца
FontDialog1.Font := DBGrid1.Columns.Items[0].Title.Font;
IF FontDialog1.Execute THEN
FOR 1 := 0 TO DBGrid1.Columns.Count - 1 do
DBGrid1.Columns.Items[i].Title.Font := FontDialog1.Font;
end;
// Обработчик нажатия кнопки "Шрифт столбца" Вызывает диалог выбора шрифта и устанавливает выбранный шрифт для текущего столбца, индекс которого определяется как DBGrid1.Selectedlndex
procedure TForm1.AssignFontToSelectedColumnButtonClick(Sender: TObject) ;
begin
// в диалоге выбора шрифта текущим будет шрифт текущего столбца
FontDialog1.Font := DBGrid1.Columns.Items[DBGrid1.Selectedlndex].Font;
IF FontDialog1.Execute THEN
DBGrid1.Columns.Items[DBGrid1.Selectedlndex].Font :=FontDialog1.Font;
end;
// Обработчик нажатия кнопки "Фон столбца" Вызывает диалог выбора цвета и устанавливает выбранный цвет для фона текущего столбца, индекс которого определяется как DBGrid1.Selectedlndex
procedure TForm1.AssignColorToSelectedColumnButtonClick(Sender: TObject) ;
begin
// в диалоге выбора шрифта текущим будет шрифт текущего столбца
ColorDialog1. Color := DBGrid1. Columns. Items [DBGrid1. Selectedlndex] .Color;
IF ColorDialog1.Execute THEN
DBGrid1.Columns.Items[DBGrid1.Selectedlndex].Color := ColorDialog1.Color;
end;
// Обработчик нажатия кнопки "Фон заголовка столбца" Вызывает диалог выбора цвета и устанавливает выбранный цвет для фона заголовка текущего столбца, индекс которого определяется как DBGrid1.Selectedlndex
procedure TForm1.AssignColorToSelectedColumnsTitleButtonClick ( Sender: TObject) ;
begin
// в диалоге выбора шрифта текущим будет шрифт заголовка текущего столбца
ColorDialog1.Color :=
DBGrid1.Columns.Items[DBGrid1.Selectedlndex].Title.Color,
IF ColorDialog1.Execute THEN
DBGrid1.Columns.Items[DBGrid1.Selectedlndex].Title.Color := ColorDialog1.Color;
end;
Пример динамического изменения характеристик столбцов показан на рис 10.11.