Прежде, чем двигаться дальше, давайте внимательнее ознакомимся с только что созданной формой.
1. Откройте в конструкторе форм модуль данных (если при сохранении проекта вы оставили имена, выбранные по умолчанию, то модулю данных будет соответствовать файл Unit2.pas) и щелкните мышью на компоненте Table1.
2. Нажмите клавишу < F11 >, чтобы перейти в инспектор объектов.
Обратите внимание на два самых важных свойства: DatabaseName и TableName.
В качестве значения свойства DatabaseName указано имя псевдонима DBDEMOS, a в качестве значения свойства TableName - имя файла biolife.db.
3. Выделите в модуле данных компонент DataSource1. Среди его свойств также можно выделить два ключевых свойства: DataSet и AutoEdit.
В данном случае свойство DataSet содержит ссылку на компонент Table1. Это означает, что данные, которыми компонент DataSource1 обменивается с элементами управления, адресуются объекту Table1, связанному с конкретной таблицей базы данных.
Второе важное свойство, AutoEdit, имеет значение True. Это означает, что компонент DataSource1 автоматически переключается в режим редактирования, то есть, изменения, вносимые с помощью элементов управления, могут заноситься в соответствующие записи таблицы базы данных.
4. Щелкните мышью на одном из компонентов DBEdit и откройте инспектор объектов. У каждого из компонентов DBEdit, как и у других элементов управления данными, также есть два самых важных свойства: DataSource и DataField.
Свойство DataSource содержит ссылку на компонент DataSource1. Такая связь означает, что данные, которые вводятся с помощью компонента DBEdit, отправляются в соответствующую таблицу базы данных через объект DataSource1.
Второе свойство, заслуживающее внимания, DataField, определяет поле таблицы базы данных, с которым связан элемент управления.
Итак, поведем итоги. Компонент Table связывает форму с конкретной таблицей, а посредником между ним и элементами управления для работы с данными является компонент DataSource. Такая организация позволяет быстро подключать элементы управления к различным таблицам с названиями полей - достаточно только изменить свойство DataSource.DataSet.
Упражнение 3. Настройка элементов управления данными
Запустите приложение еще раз и обратите внимание на поля таблицы biolife под названиями Length_in, Notes и Graphic:
· в поле Length_in отображается слишком много цифр после запятой;
· поле Notes - это не обычное строковое поле, а текстовое поле большого размера, так называемое, тето-поле;
· поле Graphic содержит рисунок, вместо которого на форме отображается строка "(GRAPHIC)" (рис.7).
Давайте устраним эти недостатки.
Рис.7.
Формат отображения данных
1. Закройте приложение, перейдите в модуль данных и дважды щелкните мышью на компоненте Table1. В результате на экране появится редактор полей таблицы biolife.
2. Выделите в нем мышью поле Length_in и нажмите клавишу < F11 >, чтобы открыть инспектор объектов (рис.8).
Для доступа к полям таблиц в Delphi используется класс TField. Элементам списка, отображаемого в редакторе полей таблицы, соответствуют объекты классов, производных от TField. Например, строковому полю соответствует объект типа TStringField, a целочисленному полю - объект типа TIntegerField.
Объекты полей, как и любые другие объекты, обладают рядом полезных свойств и методов. Также следует отметить, что компоненты TField, размещенные на форме или в модуле данных, принадлежат этой форме или этому модулю данных, а не связанным с ними компонентам наборов данных (Table и Query).
Рис.8
Как видно, полю Length_in соответствует объект типа TFloatField.
Класс TFloatField используется для работы с полями, которые содержат числа с плавающей запятой. Объекты полей имеют много полезных свойств, но в данном случае нас интересует только одно из них Display Format. Это свойств позволяет задать формат отображения данных поля в элементах управления, DBEdit или DBGrid.
В Delphi для определения формата отображения числовых полей использует набор специальных символов форматирования, представленный в табл.1.
Таблица 1.
Символы, которые используются для определения формата отображения
числовых полей
Символ | Описание |
Указывает на позицию цифры. Если значение поля не содержит цифру в той позиции, для которой в строке форматирования указан символ "0", то в этой позиции отображается ноль. | |
# | Указывает на позицию цифры, однако если в этой позиции в значении поля не стоит никакой цифры, то в ней ничего не отображается. |
. | Позиция десятичной точки. |
, | Разделитель разрядов. Отделяет тысячи от миллионов и т.д. |
Е+ | Отображение числа в экспоненциальной форме. После символов "Е+" в строке форматирования можно указать до четырех символов "0", определяющих количество цифр для отображения экспоненты. |
'хх'или"хх" | Символы, заключенные в одинарные или двойные кавычки, просто отображаются в значении поля. |
; | Разделяет разделы строки форматирования для положительных, отрицательных и нулевых чисел. Если строка форматирования состоит из одного раздела, тогда она применяется для всех значений. Если она состоит из двух частей, разделенных символом ";". Тогда первый шаблон форматирования применяется для положительных и нулевых чисел, а второй - для отрицательных. Если же строка форматирования состоит из трех разделов, тогда первому из них соответствуют положительные числа, второму - отрицательные, а третьему - нулевые. |
3. Присвойте свойству DisplayFormat объекта Table1Length_in значение #.00. Этому шаблону соответствует отображение чисел с двумя цифрами после запятой.
4. Теперь запустите приложение и убедитесь, что в компоненте DBEdit, соответствующем долю Length_In, действительно отображается два знака после запятой.
5. Закройте приложение и откройте в конструкторе форм форму Form3, на которой размещены элементы управления данными.
6. Выделите компонент DBEdit, соответствующий полю Notes (он называется Edit Notes) и выполните команду Edit - Cut или нажмите комбинацию клавиш < Ctrl+X >. В результате компонент EditNotes будет удален с формы и помещен в буфер обмена Windows.
7. Нажмите клавишу < F12 >, чтобы переключиться в редактор исходного кода.
8. Находясь в редакторе исходного кода, перейдите в самый конец программного модуля, расположите курсор под строкой end. ивыполните команду Edit - Paste (или нажмите комбинацию клавиш < Сtrl+V >).
Врезультате компонент EditNotes будет вставлен в модуль исходного кода в текстовом виде:
9. Измените первую строку этого фрагмента, чтобы вместо типа TDBEdit был указан тип TDBMemo:
10. Выделите текстовый фрагмент, соответствующий компоненту EditNotes, вырежьте его в буфер обмена при помощи команды Edit - Cut (< Ctrl+X >).
Рис. 9