Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование БД в Delphi ВТиП.doc
Скачиваний:
53
Добавлен:
17.03.2016
Размер:
3.62 Mб
Скачать
  1. Компоненты визуализации данных вDelphi

Характерной особенностью визуализации данных (вкладка DataControls) является их подключение к необходимым компонентам-наборамTTableиTQueryчерез связующие компоненты - источник данныхTDataSource.

В этом разделе описываются основные приемы работы с компонентом-источником TDataSourceи компонентами, предназначенными для визуализации данных:

  • в виде таблицы (сетки);

  • в виде формы.

Визуализация данных в виде таблицы (сетки) осуществляется с помощью компонентаTDBGrid.

Визуализация данных в виде формыпредставляет собой обычную форму, на которую помещены компоненты визуализации отдельных полей текущей записи. Набор этих компонент достаточно обширен – TDBText,TDBEdit и т.д.

    1. Компонент tdbGrid

Компонент TDBGrid(сетка) отображает содержимоеНДв виде таблицы, в которой столбцы соответствуют полямНД, а строки - записям.

      1. Свойства

Таблица 8.1 -Свойства классаTColumn

Свойство

Описание

type TColumnButtonStyle = (cbsAuto, cbsEllipsis, cbsNone);

property ButtonStyle: TColumnButtonStyle;

Определяет стиль назначенной столбцу кнопки: cbsAuto - столбец содержит кнопку раскрывающегося списка; cbsEllipsis - столбец содержит кнопку, щелчок по которой вызывает событие OnEditButtonClick; cbsNone - столбец не содержит кнопки

property Color: TColor;

Определяет цвет столбца

property DisplayName: string;

Содержит заголовок столбца

property Field: TField;

Содержит ссылку на связанное со столбцом поле НД

property FieldName: string;

Содержит имя связанного со столбцом поля НД

property Font: TFont;

Определяет шрифт столбца

property PickList: TStrings;

Определяет элементы раскрывающегося списка, если в ButtonStyle установлено значение cbsAuto

property ReadOnly: boolean;

Если содержит True, данные в столбце нельзя изменять

property Title: TColumnTitle;

Содержит ссылку на объект-заголовок, имеющий стандартные для визуальных компонентов свойства Alignment, Caption, Color и Font, позволяющие управлять текстом в заголовке столбца

property Visible: boolean;

Если содержит False, столбец не отображается в сетке

property Width: integer;

Содержит ширину столбца в пикселах

      1. Дополнительные возможности сетки

У компонента есть свойство, с помощью которого можно управлять поведением и внешним видом сетки:

type TDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect);

TDBGridOptions = set of TDBGridOption;

property Options: TDBGridOptions;

Параметры здесь следующие:

  • dgEditing- разрешает изменениеНД;

  • dgAlwaysShowEditor- при выделении столбца автоматически переводит его в режим редактирования;

  • dgTitles- показывает заголовки столбцов;

  • dgIndicator- показывает указатель текущей строки в самом левом фиксированном столбце;

  • dgColumnResize- разрешает пользователю с помощью мыши изменять ширину столбцов;

  • dgColLines- показывает в сетке вертикальные разделяющие линии;

  • dgRowLines- показывает горизонтальные разделяющие линии;

  • dgTabs- разрешает переход от столбца к столбцу с помощью клавишиTab;

  • dgRowSelect- разрешает выделение цветом всей текущей строки;

  • dgAlwaysShowSelection- выделение текущей строки цветом сохраняется, даже если компонент теряет фокус ввода;

  • dgConfirmDelete- требует подтверждения удаления строки;

  • dgCancelOnExit- если пользователь вставляет пустую строку и покидает, ее, она не сохраняется в таблицеБД;

  • dgMultiSelect- разрешает множественный выбор строк.

Следует отметить, что отсутствие в свойстве значения dgEditingзащищает отображаемые в сетке данные от изменения независимо от значения свойстваReadOnlyлюбого ее столбца. Точно так же защищает строки вставка в свойство значенияgdRowSelected, кроме того, в этом случае из свойства автоматически удаляются значенияdgEditingиdgAlwaysShowEditor(если, разумеется, они входили в множествоOpt.ions; эти значения нельзя вставить в свойство, пока в нем присутствует значениеdgRowSelected). В защищенной сетке нельзя изменить ни одной ячейки текущей строки, но можно удалить строку или вставить пустую строку (если в свойстве нет значенияdgCancelOnExit). Если вы не собираетесь защищать данные, полезно вставить в свойствоOptionsзначениеdgAlwaysShowEditor- в этом случае столбец автоматически переводится в режим редактирования, как только он получает фокус ввода; если это значение отсутствует, редактировать выделенный столбец можно после нажатия клавишиF2илиEnterлибо после двойного щелчка на ячейке мышью.