Главная » Уроки по ООП » Урок 42. Компоненты TDBGrid, TDBCtrlGrid

Урок 42. Компоненты TDBGrid, TDBCtrlGrid

Свойства и методы компонента DBGrid


Объявление

Тип

Описание

Свойства

Columns:  TDBGridColumns; 

Pb

Содержит коллекцию объектов TColumn, описывающих колонки компонента

DefaultDrawing: Boolean; 
 

Pb

Определяет способ визуализации данных в сетке. При значении True данные отображаются автоматически. При значении False используется метод-обработчик OnDrawColumnCell

FieldCount: Integer; 

Ro

Возвращает число видимых колонок сетки

Fields [Index: Integer] : TField; 

Ro

Массив объектов полей набора данных, отображаемых в компоненте

TDBGridOptions

Pb

Определяет особенности визуализации и поведения компонента:

  •  dgEditing — данные можно редактировать;
  •  dgAlwaysShowEditor — данные в сетке всегда в режиме редактирования;
  •  dgTitles — видны заголовки колонок;
  •  dglndicator — в начале строки виден номер текущей колонки;
  •  dgColumnResize — колонки можно перемещать и менять их ширину;
  •  dgColLines — видны линии между колонками;
  •  dgRowLines — видны линии между строками;
  •  dgTabs — для перемещения по строкам можно использовать клавиши <Таb> и <Shift>+<Tat»;
  •  dgRowSelect — можно выделять целые строки, при этом игнорируются установки dgEditing И dgAlwaysShowEditor;
  •  dgAlwaysShowSelection — выделение текущей ячейки сохраняется, даже если сетка не активна;
  •  dgConfirmDelete — при удалении строк появляется запрос о подтверждении операции;
  •  dgCancelOnExit — созданные пустые строки при уходе из сетки не сохраняются;
  •  dgMultiSelect — можно выделять несколько строк одновременно

SelectedField: TField;

Pu

Содержит объект текущего поля

Selectedlndex: Integer;

Pu

Содержит номер текущей колонки в массиве свойства Columns

SelectedRows: TBookmarkList;

Ro

Набор закладок на записи набора данных, соответствующих выделенным строкам сетки

TitleFont: TFont;

Pb

Шрифт заголовков колонок

EditorMode: Boolean;

Pu

Показывает, можно ли редактировать текущую ячейку

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, который инкапсулирует свойства колонки или столбца сетки. Его основным назначением является правильное отображение данных из поля набора данных, связанного с этой колонкой. Поэтому объект колонки обладает свойствами и методами, которые позволяют произвольным образом задавать параметры отображения данных (цвет, шрифт, ширину и т. д.). Первоначальные значения берутся из связанных с колонками полей. Измененные свойства можно восстановить при помощи группы специальных методов (DefauitColor, DefaultFont И др.).
Свойство Assignedvalues позволяет в любой момент определить, какие первоначальные настройки были изменены.
За отображение заголовка колонки отвечает свойство Title, представляющее собой ссылку на экземпляр объекта TColumnTitie. Здесь можно задать текст заголовка, параметры шрифта текста заголовка и цвет фона заголовка. По умолчанию текст заголовка берется из свойства DispiayLabel объекта TField.

Свойства и методы класса TColumn


Объявление

Тип

Описание

Свойства

property Alignment: TAlignment;

Pb

 Определяет выравнивание данных  в колонке

type 
TColumnValue = (cvColor, cvWidth, cvFont, cvAlignment, cvReadOnly, cvTitleColor, cvTitleCaption, cv'i'itleAlignment, cvTitleFont, cvImeMode, cvImeName) ; TColuinnValues = set of TColumnValue;
property AssignedValues: TColuranValues ;

Ro

Возвращает набор атрибутов  колонки, которые были изменены по сравнению с первоначальными

type TColumnButtonStyle = (cbsAuto, cbsEllipsis, cbsNone) ;
property ButtonStyle: TColumnButtonStyle;

Pb

Задает способ редактирования  данных в колонке:

  •  cbsAuto — кнопка в редактируемой ячейке появляется, если  связанное поле является полем  синхронного просмотра;
  •  cbsEllipsis — кнопка в редактируемой ячейке появляется всегда,  щелчок на кнопке вызывает  обработчик OnEditButtonClick;
  •  cbsNone — при редактировании ячейки кнопка не появляется

property Color: TColor;

Pb 

Цвет фона колонки

property DisplayName: string;

Pu

Название колонки в списке Редактора столбцов

property DropDownRows: Cardinal;

Pb 

Определяет число строк разворачивающегося списка ячейки

property Expandable: Boolean;

Pu

В значении True разрешает показ связанных с полем колонки дочерних полей абстрактного, ссылочного типов и массивов

property Expanded: Boolean;

Pb 

При значении True каждое дочернее поле отображается в новой колонке. При значении False дочерние поля отображаются через точку с запятой и не доступны для редактирования

property FieldName: string;

Pb

Название поля, связанного с колонкой

property Font: TFont;

Pb

Шрифт данных в колонке

property Grid: TCustomDBGrid;

Ro

Определяет сетку, содержащую эту колонку

property ParentColumn: TColumn;

Ro

Определяет колонку-владельца текущей колонки. Используется для дочерних полей

property PickList: TStrings;

Pb

Содержит разворачивающийся список, используемый при редактировании данных

property PopupMenu: TPopupMenu;

Pb

Связывает с колонкой всплывающее меню

property Showing: Boolean;

Ro

Возвращает значение True, если колонка видима

property Title: TColumnTitle;

Pb

Задает текст заголовка и его параметры

property Visible: Boolean;

Pb

Задает видимость колонки

property Width: Integer;

pb

Задает ширину колонки в пикселах

Методы

procedure Assign (Source: TPersistent); override;

Pu

Копирует колонку Source в текущую колонку

function Def aultAlignment: TAlignment;

Pu

Возвращает первоначальное значение выравнивания колонки

function DefaultColor: TColor;

Pu

Возвращает первоначальный фоновый цвет колонки

function DefaultFont: TFont;

Pu

Возвращает первоначальный шрифт данных в колонке

type TIraeMode = (imDisable, iraClose, imOpen, imDontCare, imSAlpha, imAlpha, imHira, imSKata, irnKata, imChinese, imSHanguel, imHanguel); function DefaultlmeMode: TImeMode;

Pu

Возвращает первоначальный способ ввода символов

type TImeName = type string;
function DefaultlmeName: TImeName;

Pu

Возвращает первоначальное имя редактора способа ввода символов

function DefaultReadOnly: Boolean;

Pa

: Возвращает первоначальный режим  редактирования данных

function DefaultWidth: Integer;

Pu

Возвращает первоначальную ширину  колонки в пикселах

function Depth: Integer;

Pu

; Возвращает число непосредственных  предков колонки

procedure RestoreDefaults; virtual;

Pu

i Восстанавливает первоначальные  настройки колонки

При работе с компонентом TDBGrid все операции с отдельными колонками осуществляются при помощи экземпляра класса TDBGridColumns, который инкапсулирует список объектов колонок (свойство Columns компонента TDBGrid). Доступ к колонкам осуществляется при помощи свойства items. Нумерация колонок начинается с нуля.
При помощи свойств и методов класса TDBGridColumns можно изменять настройки полей компонента TDBGrid во время выполнения .
Свойство state определяет способ создания колонок. Его значение устанавливается автоматически. При создании колонок для всех полей сразу (кнопка Add All Fields Редактора столбцов) устанавливается значение csDefault.
При любом ручном изменении свойств устанавливается значение csCustomized. При программном изменении значения свойства во время выполнения все существующие колонки удаляются.
Все данные из существующих колонок можно сохранить в файле или потоке при помощи методов SaveToFile и saveToStream, а затем загрузить их обратно методами LoadFromFile И LoadFromStream.

Свойства и методы класса TDBGridColumns


Объявление

Тип

Описание

Свойства

property Grid: TCustomDBGrid;

Ro

Возвращает ссылку на сетку, владеющую данным объектом

property Items [Index: Integer] : TColumn default;

Pu

Индексный список объектов колонок сетки:

type TDBGridColumnsState = (csDefault, csCustomized) ;
property State: TDBGridColumnsState;

Pu

Определяет способ создания колонок сетки:

  • csDefault — колонки создаются динамически с параметрами, соответствующими связанным полям;
  •  csCustomized — параметры колонок определены разработчиком и могут отличаться от параметров полей

property Count: Integer;

Pu

Возвращает общее число колонок

Методы

function Add: TColumn;

Pu

Добавляет новый объект TColumn

procedure LoadFromFile (const Filename: string);

Pu

Загружает данные в объект из файла FileName

procedure LoadFromStream(S: TStream) ;

Pu 

Загружает данные в объект из потока s

procedure RebuildColumns;

Pu

Удаляет существующие колонки и создает новые, основываясь на параметрах полей набора данных

procedure RestoreDefaults;

Pu

Восстанавливает первоначальные настройки колонок

procedure SaveToFiie (const Filename: string);

Pu

Сохраняет данные из колонок в файле FileName

procedure SaveToStream(S: TStream) ;

Pu

Сохраняет данные из колонок в потоке s

Свойства и методы компонента TDBCtrlGrid


Объявление

Тип

Описание

Свойства

property AllowDelete: Boolean;

Pb

Разрешает или запрещает удаление текущей записи

property Allowlnsert: Boolean;

Pb

Разрешает или запрещает вставку новой записи

property Canvas: TCanvas;

Ro

Канва компонента

property ColCount: Integer;

Pb

Определяет число колонок с панелями

property EditMode: Boolean;

Pu

Разрешает или запрещает редактирование данных

type TDBCtrlGridOrientation = (goVertical, goHorizontal);
property Orientation: TDBCtrlGridOrientation;

Pb

Определяет порядок следования записей — по горизонтали или по вертикали

type TDBCtrlGridBorder = (gbNone, gbRaised) ;
property PanelBorder: TDBCtrlGridBorder;

Pb

Определяет способ отображения границы панели

property PanelCount: Integer;

Ro

Содержит число видимых одновременно панелей

property PanelHeight: Integer;

Pb

Определяет высоту панелей в пикселах

property Panellndex: Integer;

Pu

Определяет индекс панели текущей записи

property PanelWidth: Integer;

Pb

Определяет ширину панелей в пикселах

property RowCount: Integer;

Pb

Определяет число строк видимых панелей

property SelectedColor: TColor;

Pb

Определяет фоновый цвет панели текущей записи

property ShowFocus : Boolean;

Pb

Разрешает или запрещает выделение вокруг панели текущей записи

Методы

type TDBCtrlGridKey = (gkNull, gkEditMode, gkPriorTab, gkNextTab, gkLeft, gkRight, gkUp, gkDown, gkScrollUp, gkScrollDown, gkPageUp, gkPageDown, gkHome, gkEnd,  gklnsert, gkAppend, gkDelete, gkCancel) ;
procedure DoKey(Key: TDBCtrlGridKey) ;

Выполняет операцию, заданную при помощи параметра Key.
Доступны операции навигации по записям, перевода в режим редактирования, вставки, удаления записей, отмены изменений

procedure KeyDown (var Key: Word; Shift: TShiftState) ; override; 

Используется при нажатии клавиши для трансляции кодов клавиш

Методы-обработчики событий

type TPaintPanelEvent =  procedure (DBCtrlGrid: TDBCtrlGrid; Index: Integer) of object; 
property OnPaintPanel:  TPaintPanelEvent; 

Вызывается при перерисовке панели. Параметр Index соответствует индексу панели


 

 

Составитель: Салий Н.А.

Яндекс.Метрика
Сайт создан в системе uCoz