Визуальные компоненты работы с данными

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

Одна часть компонентов предназначена для отображения данных текущей записи набора данных или всего набора данных, например, TDBText и TDBGrid. А другая часть компонентов предназначена для навигации по набору данных и редактированию текущей записи, например, TDBNavigator, TDBEdit, TDBMemo, TDBRadioGroup и TDBListBox.

procedure TForm1.FormCreate(Sender: TObject); begin ... // Задаем источник данных DBEdit1.DataSource:=DataSource1; // Задаем поле DBEdit1.DataField:='Code'; ... end;

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

Одним из самых простых визуальных компонентов является компонент TDBText. Данный компонент предназначен только для отображения значения поля текущей записи набора данных. Этот компонент очень похож на компонент TLabel.

Компоненты TDBEdit и TDBMemo предназначены для отображения значения поля текущей записи набора данных, но с возможностью редактирования этого значения. То есть, значение поля, отображаемое в одном из этих компонентов может быть отредактировано, изменено или добавлено в набор данных, что в некотором роде очень упрощает работу. Как только компонент потеряет фокус, содержащееся в нем значение поля сразу же будет отображено в наборе данных.

Для отображения и редактирования значения логического поля служит компонент TDBCheckBox. Данный компонент похож на аналогичный компонент TCheckBox и представляет собой "флажок" с текстовым заголовком. Если в нем располагается "галочка", то компонент считается включенным, иначе выключенным. Если данный компонент связать с некоторым полем логического или строкового типа, то в зависимости от состояния компонента в поле будет занесено значение True или False. Кроме того, переключатель TDBCheckBox можно применять для отображения обычных текстовых значений. Для этого служат два свойства ValueChecked - для отображения значения во включенном состоянии, и свойство ValueUnChecked - для отображения значения в выключенном состоянии (см. Пример):

 

procedure TForm1.FormCreate(Sender: TObject); begin // Задаем источник данных DBCheckBox1.DataSource:=DataSource1; // Задаем поле Базы Данных DBCheckBox1.DataField:='Log'; // Устанавливаем значение во включенном состоянии DBCheckBox1.ValueChecked:='Да;Д'; // Устанавливаем значение в выключенном состоянии DBCheckBox1.ValueUnchecked:='Нет;Н'; end;

Иногда требуется организовать выбор значения поля Базы Данных из фиксированного числа значений. Для этого удобно использовать компоненты TDBRadioGroup, TDBComboBox и TDBListBox.

Управлением числом и названием отдельных переключателей компонента TDBRadioGroup служит свойство Items, которое содержит названия заголовков переключателей. Для указания значений выбранных переключателей служит свойство Values. Если происходит переход к некоторой записи набора данных и значение поля, с которым связан компонент, равно значению в списке свойства Values, то соответствующий переключатель будет переведен во включенное состояние. При помощи данного компонента также можно задавать значения поля текущей записи набора данных. Но, изменение значения поля произойдет только при потере фокуса или выборе другого переключателя.

Для задания некоторого фиксированного значения также служат компоненты TDBComboBox и TDBListBox. При выборе некоторого значения одного из этих компонентов это значение сразу же будет занесено в поле Базы Данных. Но, не нужно забывать, что новое значение также будет отображено в наборе данных, только при потере фокуса.