Delphi 3 и создание приложений баз данных


Изменение свойств постоянных столбцов во время выполнения. 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.



Содержание раздела