Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие СУБД 2011.pdf
Скачиваний:
93
Добавлен:
10.06.2015
Размер:
2.75 Mб
Скачать

100

property OnColExit: TNotifyEvent;

type TDBGridClickEvent = procedure (Column: TColumn) of object;

property OnCellClick: TDBGridClickEvent;

type TDBGridClickEvent = procedure (Column: TColumn) of object;

property OnTitleClick: TDBGridClickEvent;

type

TMovedEvent

=

procedure

(Sender:

TObject; FromIndex,

 

ToIndex: Longint) of

object;

 

 

 

 

property OnColumnMoved: TMovedEvent;

property OnEditButtonClick: TNotifyEvent;

Статический текст – компонент TDBText

Одна из колонок сетки теряет фокус ввода.

Событие вызывается при щелчке кнопкой мышки в ячейке сетки. Здесь Column – колонка, которой принадлежит данная ячейка.

Щелчок мышкой по заголовку колонки.

Событие вызывается после перемещения колонки из позиции

FromIndex в позицию ToIndex.

Щелчок по кнопке внутри ячейки сетки.

Элемент управления TDBText предназначен только для отображения текущего значения поля и не имеет никаких навыков по редактированию связанных с ним данных. Для подключения компонента к набору данных достаточно выполнить стандартные операции определения источника данных (свойство DataSource) и указать какое именно поле нас интересует (свойство DataField).

Для обеспечения автоподстройки размеров компонента при выводе текста с различным количеством символов установите в true свойство:

property AutoSize: Boolean;

Если текстовые данные настолько необъятны, что ни каким образом не желают помещаться в одну строку, следует перевести в true свойство:

property WordWrap: Boolean;//по умолчанию false

В этом случае элемент управления вспомнит про свои навыки вывода информации в несколько строк.

Строка ввода БД – компонент TDBEdit

Компонент класса TDBEdit представляет собой строку ввода способную не только отображать но и редактировать текущее значение поля.

Многострочный текстовый редактор БД – TDBMemo

Элемент управления TDBMemo спроектирован для работы с текстовыми полями больших размеров или с BLOB полями, специализирующихся на хранении текстовых данных.

Изображение БД – компонент TDBImage

Элемент TDBImage специализируется на обработке графических данных, содержащихся в BLOB полях. Ключевое свойство компонента:

property Picture: TPicture;

Оно инкапсулирует весь функционал для работы с растровой графикой и метафайлами. Для ускорения работы с BLOB полями в элементе управления объявлено свойство:

property AutoDisplay: Boolean;

Задача свойства – включение/отключение автозагрузки данных из поля. Если свойство установлено в false, то для инициализации процесса загрузки изображения в компонент вызывают метод:

procedure LoadPicture;

© 2011 г. Д.Л. Осипов

101

Список БД – TDBListBox

Список TDBListBox отображает текущее значение поля (при условии совпадения его с одним из элементов списка) и позволяет пользователю передавать в поле таблицы одно из заранее подготовленных текстовых значений. Перечень допустимых значений храниться в унаследованном свойстве:

property Items : TStrings;

Заполнение списка строк может осуществляться как в период разработки проекта во встроенном редакторе, так и во время работы приложения.

Комбинированный список БД – TDBComboBox

Комбинированный список выбора TDBComboBox призван решать задачи по выбору значения из списка. Текущее значение связанного с компонентом поля отображается в строке редактирования элемента управления. При желании пользователь может передать в базу данных одно из значений хранящихся в списке компонента. Список значений содержится в свойстве Items, индекс текущего значения – ItemIndex.

Флажок БД – TDBCheckBox

Элемент позволяет пользователю согласиться или отказываться от условия. Хотя в первую очередь флажок нацелен на взаимодействие с полями данных типа Boolean, но его также можно научить передавать в базу текстовые значения. Эта возможность осуществляется с помощью двух свойств:

property

ValueChecked: String;

//значение

на

включение флажка

property

ValueUnchecked: String;

//значение

на

отключение флажка

по умолчанию содержащими значения “ True ” и “ False” соответственно. Теперь, если в присоединённом к компоненту текстовом поле базы данных обнаруживается значение “True”, то этот факт найдёт своё отражение – в виде “галочки” на поверхности элемента. Значение “False” наоборот – прогонит всех галок. Компонент способен отслеживать одновременно несколько значений, но в этом случае значения должны быть разделены точкой с запятой:

DBCheckBox1.ValueChecked := 'Да;Вкл'; DBCheckBox1. ValueUnchecked := 'Нет;Выкл';

Для управления компонентом из программы потребуются свойства: property Checked: Boolean;

и

type TCheckBoxState = (cbUnchecked, cbChecked, cbGrayed); property State: TCheckBoxState;

Радиогруппа БД – TDBRadioGroup

Компонент реализует группу кнопок выбора, состояние которых определяется значением текущего поля присоединённого набора данных. Одновременно может быть отмечена только одна из кнопок группы. При выборе пользователем кнопки, связанное с ним значение передаётся в базу данных.

Список заголовков кнопок определяется содержимым свойства Items:

property Items: TStrings;

Перечень возможных значений в свою очередь заполняется в свойстве: property Values: TStrings;

Оба свойства доступны во время разработки и во время выполнения программы. Отдельно подчеркну, что количество строк в обоих списках должно быть одинаковым.

Текущее значение связанного поля мы можем выяснить из свойства: property Value: String;

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

© 2011 г. Д.Л. Осипов

102

property ItemIndex: Integer;

Компонент – TDBCtrlGrid

Компонент TDBCtrlGrid представляет собой набор динамически создаваемых панелей. После открытия связанного с ним набора данных компонент самостоятельно создаёт несколько панелей. Каждая панель ассоциируется с отдельной записью из набора данных. Главная черта TDBCtrlGrid в том, что этот элемент управления может являться владельцем других компонентов предназначенных для работы с БД (см. рис. 16.2).

Рисунок 16.2. — Работа с компонентом TDBCtrlGrid

Порядок следования записей в компоненте TDBCtrlGrid определён свойством: property Orientation: TDBCtrlGridOrientation;

type TDBCtrlGridOrientation = (goVertical, goHorizontal);

По умолчанию свойство принимает значение goVertical, что соответствует последовательности сверху-вниз.

По умолчанию панели компонента размещаются в одном столбце. Для изменения этой традиции требуется настроить свойство:

property ColCount: Integer;

Количество рядов видимых в клиентской области элемента управления определяется свойством:

property RowCount: Integer;

За геометрические размеры панелей отвечают свойства: property PanelHeight: Integer;

property PanelWidth: Integer;

Индекс панели текущей записи хранится в свойстве: property PanelIndex: Integer;

Это же свойство можно применять при необходимости переместиться к панели с определённым номером.

Навигатор – TDBNavigator

Навигатор по набору данных визуально представляет собой группу кнопок (см. рисунок 16.3). Компонент инкапсулирует в себе золотой минимум методов достаточных для создания элементарного приложения работающего с таблицей базы данных. Сразу после

© 2011 г. Д.Л. Осипов

103

подключения к источнику данных при помощи свойства DataSource элемент управления сможет обеспечить перемещение по записям в наборе, вставку, редактирование и удаление записи – для этого достаточно щелкнуть по соответствующей кнопке. По умолчанию компонент содержит 10 кнопок, однако по желанию программиста вполне можно отказаться от показа ненужных. Для этого надо настроить свойство:

property VisibleButtons: TButtonSet; type TButtonSet = set of TNavigateBtn;

type TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);

Первая запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обновить данные

 

 

 

 

 

 

 

 

 

Предыдущая запись

 

 

 

 

 

 

 

 

Отменить изменения

 

 

 

 

 

 

 

 

 

 

Следующая запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сохранить

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последняя запись

 

 

 

 

 

 

 

 

Редактировать запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Удалить запись

 

 

 

 

 

 

 

 

 

 

 

 

 

Добавить запись

 

Рисунок 16.3.- Элемент управления TDBNavigator

Как и практически все визуальные элементы управления VCL навигатор обладает элементарным обработчиком события OnClick(). С той только разницей, что он способен различать по какой из кнопок был произведён щелчок.

property OnClick: ENavClick;

type ENavClick = procedure (Sender: TObject; Button: TNavigateBtn) of object;

для этого в событии объявлен дополнительный параметр – Button.

Задание

Используя полученные на занятии знания, разработайте интерфейс для вашего приложения БД. В приложении должны быть обязательно задействованы компоненты

TDataSource, TDBGrid, TDBCtrlGrid, TDBEdit, TDBListBox (или TDBComboBox), TDBCheckBox, TDBRadioGroup и другие компоненты на ваш выбор.

© 2011 г. Д.Л. Осипов