Иллюстрированный самоучитель по Delphi 7 для профессионалов

Табличное представление данных. Компонент TDBGrid.

Таблица 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 Определяет особенности визуализации и поведения компонента:
  • dgEditing – данные можно редактировать;
  • dgAlwaysShowEditor – данные в сетке всегда в режиме редактирования;
  • dgTitles – видны заголовки колонок;
  • dglndicator – в начале строки виден номер текущей колонки;
  • dgColumnResize – колонки можно перемещать и менять их ширину;
  • dgColLines – видны линии между колонками;
  • dgRowLines – видны линии между строками;
  • dgTabs – для перемещения по строкам можно использовать клавиши Таb и SHIFT + Tab;
  • dgRowSelect – можно выделять целые строки, при этом игнорируются установки dgEditing и dgAlwaysShowEditor;
  • dgAlwaysShowSelection – выделение текущей ячейки сохраняется, даже если сетка не активна;
  • dgConfirmDelete – при удалении строк появляется запрос о подтверждении операции;
  • dgCancelOnExit – созданные пустые строки при уходе из сетки не сохраняются;
  • dgMultiSelect – можно выделять несколько строк одновременно
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 DefaultHandler (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 Вызывается при перерисовке ячейки перед обработчиком OnDrawCoiumnCell, если свойство Columns.State =csDefault.
Этот метод лучше не применять, т. к. он используется только для обеспечения обратной совместимости с ранними версиями
property OnEditButtonClick: TNotifyEvent; Pb Вызывается при щелчке мышью на кнопке в ячейке
type TDBGridClickEvent = procedure (Column: TColumn) of object;
property OnTitleClick: TDBGridClickEvent;
Pb Вызывается при щелчке мышью на заголовке колонки. Колонка определяется параметром Column
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.