Упражнение 2. Анализ новой формы

Прежде, чем двигаться дальше, давайте внимательнее ознакомимся с только что созданной формой.

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



php"; ?>