Свойства и методы компонента WBGrid
Таблица 15.2. Свойства и методы компонента WBGrid
Объявление |
Тип |
Описание |
Свойства |
||
property Columns: TDBGridColumns; |
Pb |
Содержит коллекцию объектов TColumn, описывающих колонки компонента |
property DefaultDrawing: Boolean;
|
Pb |
Определяет способ визуализации данных в сетке. При значении True данные отображаются автоматически. При значении False используется метод-обработчик OnDrawColumnCell |
property FieldCount: Integer; |
Ro |
Возвращает число видимых колонок сетки |
property Fields [Index: Integer] : TField; |
Ro |
Массив объектов полей набора данных, отображаемых в компоненте |
TDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dglndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect) ; TDBGridOptions = set of TDBGridOption; |
Pb |
Определяет особенности визуализации и поведения компонента:
|
property SelectedField: TField; |
Pu |
Содержит объект текущего поля |
property Selectedlndex: Integer; |
Pu |
Содержит номер текущей колонки в массиве свойства Columns |
property SelectedRows: TBookmarkList; |
Ro |
Набор закладок на записи набора данных, соответствующих выделенным строкам сетки |
property TitleFont: TFont; |
Pb |
Шрифт заголовков колонок |
property EditorMode: Boolean; |
Pu |
Показывает, можно ли редактировать текущую ячейку |
property FixedColor: TColor; |
Pb |
Цвет фона неподвижных ячеек сетки |
Методы |
||
procedure DefaultDrawColumnCell (const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState) ; |
Pu |
Перерисовывает текст в ячейке колонки с номером DataCol. Ячейка задается прямоугольником Rect на канве сетки. Параметр state определяет состояние ячейки после перерисовки. Параметр Column содержит экземпляр класса колонки, которой принадлежит ячейка |
procedure DefaultDrawDataCell (const Rect: TRect; Field: TField; State: TGridDrawState); |
Pu |
Перерисовывает текст в ячейке колонки, определяемой параметром Field, содержащим связанный с колонкой объект поля. Ячейка задается прямоугольником Rect на канве сетки. Параметр State определяет состояние ячейки после перерисовки |
procedure Def aultHandler (var Msg); override; |
Pu |
Вызывает всплывающее меню для колонки, которой соответствуют текущие координаты мыши. Компонент должен обрабатывать сообщение WM RBUTTONUP |
function ExecuteAction (Action: TBasicAction): Boolean; override; |
Pu |
Выполняет действие, заданное параметром Action, по отношению к данному компоненту |
procedure ShowPopupEditor (Column: I TColumn; X: Integer = Low (Integer); Y: Integer = Low (Integer) ); dynamic; |
Pu |
Открывает набор данных, связанный с передаваемой параметром Column колонкой в новом окне. Работает только для типов данных абстрактный и набор данных. Параметры X и Y определяют положение нового окна |
function | ValidFieldlndex (Fieldlndex: Integer) : Boolean; |
Pu |
Возвращает значение True, если колонка с номером Fieldlndex связана с полем набора данных |
type TGridCoord = record X: Longint;Y: Longint; end; function MouseCoord(X, Y: Integer): TGridCoord; ; |
Pu |
Возвращает номера строки и столбца, соответствующие ячейке, которой принадлежат экранные координаты X и Y |
Методы-обработчики событий |
||
type TDBGridClickEvent = procedure (Column: TColumn) 1 of object; property OnCellClick: TDBGridClickEvent; |
Pb |
Вызывается при щелчке мышью на ячейке. Параметр Column содержит колонку, которой принадлежит ячейка |
property OnColEnter: TNotifyEvent; |
Pb |
Вызывается при переносе фокуса на новую колонку сетки |
property OnColExit: TNotifyEvent; |
Pb |
Вызывается перед переносом фокуса из текущей колонки |
type TMovedEvent = procedure (Sender: TObject; Froinlndex, Tolndex: Longint) of object; property OnColumnMoved: TMovedEvent ; |
Pb
|
Вызывается при переносе колонки в сетке на новое место при помощи мыши. Параметр Fromindex возвращает номер старого положения колонки. Параметр Tolndex возвращает номер нового положения колонки |
type TDrawColumnCellEvent = procedure (Sender: TObject; const Rect : TRect; DataCol : State: TGridDrawState) of object; property OnDrawColurnnCell : TDrawColumnCellEvent; |
Pb |
Вызывается при перерисовке ячейки. Параметр Rect определяет ячейку по координатам прямоугольника на канве. Параметр DataCol возвращает номер колонки в сетке. Параметр Column содержит объект колонки. Параметр State возвращает состояние колонки |
type TDrawDataCellEvent = procedure (Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState) of object; property OnDrawDataCell: TDrawDataCellEvent; |
Pb |
I Вызывается при перерисовке ячейки | перед обработчиком OnDrawCoiumnCell, если свойство Columns. State =csDefault. Этот метод лучше не применять, т. к. он используется только для обеспечения обратной совместимости с ранними версиями |
property OnEditButtonClick: TNotifyEvent; |
Pb |
1 Вызывается при щелчке мышью на кнопке в ячейке |
type TDBGridClickEvent = procedure (Column: TColumn) of object; property OnTitleClick: TDBGridClickEvent; |
Pb |
| Вызывается при щелчке мышью на заголовке колонки. Колонка определяется параметром Column |
В работе компонента TDBGrid важную роль играет класс TColumn, который инкапсулирует свойства колонки или столбца сетки (табл. 15.3). Его основным назначением является правильное отображение данных из поля набора данных, связанного с этой колонкой. Поэтому объект колонки обладает свойствами и методами, которые позволяют произвольным образом задавать параметры отображения данных (цвет, шрифт, ширину и т. д.). Первоначальные значения берутся из связанных с колонками полей. Измененные свойства можно восстановить при помощи группы специальных методов (DefauitColor, DefaultFont И др.).
Свойство Assignedvalues позволяет в любой момент определить, какие первоначальные настройки были изменены.
За отображение заголовка колонки отвечает свойство Title, представляющее собой ссылку на экземпляр объекта TColumnTitie. Здесь можно задать текст заголовка, параметры шрифта текста заголовка и цвет фона заголовка. По умолчанию текст заголовка берется из свойства DispiayLabel объекта TField (CM. гл. 13).
Каждой колонке можно придать список, который разворачивается при щелчке на кнопке в активной ячейке колонки. Выбранное в списке значение автоматически заносится в ячейку. Для реализации этой возможности применяется свойство pickList типа TStrings. Достаточно лишь заполнить список значениями во время разработки или выполнения (Рисунок 15.3).