Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
I. Правила ТБ
II. Теоретические сведения.
Еще ниже поместите обычную панель (Panel), и удалите из нее текст. Установите на нее
компонент Label, в свойстве Caption которого укажите "Позиция:". Теперь нужно, чтобы эта
надпись всегда была посередине. Поэтому свойство AutoSize переведите в False,а свойство
Alignment - в taCenter. растяните Label, чтобы она занимала почти всю ширину панели. Здесь
вместе с надписью "Позиция:" будет выходить номер записи в таблице.
Теперь перейдите на вкладку Data Controls. Здесь содержатся компоненты отображения
данных из БД. найдите DBGrid поместите ее на форму ниже панели. Сетка DBGrid
предназначена для отображения и редактирования данных из таблицы БД. сразу свойства
ReadOnly ( только для чтения) присвойте True, чтобы пользователь не мог испортить
демонстрационную таблицу своим редактированием данных.
Чтобы получить доступ к БД, нужно еще кое-что. на вкладке BDE есть компонент Table,
который обеспечивает доступ к таблице средствами механизма BDE. Компоненты не
визуальный, поэтому можете бросить его на любое место, например, поверх сетки. Теперь в
свойства DatabaseName выберите демонстрационную базу данных DBDEMOS, поставляемой
вместе с Delphi.У свойства TableName необходимо указать саму таблицу, в которой мы хотим
получить доступ. Выберите там biolife.db.
Мы уже выбрали базу данных, то есть набор таблиц, и выбрали таблицу. Однако, чтобы
вывести в сетку данные из таблицы, нужно компонент управления данными таблицы. Найдите
на вкладке DataAccess компонент DataSource. Этот компонент обеспечивает связь базы данных
из таблицы Table1 с навигационными компонентами, такими, как DBGrid. Бросьте его рядом с
Table1. В свойстве DataSet компонента нужно указать, с какой же именно таблицей мы хотим
работать. В данном примере у нас одна таблица, но может быть и несколько. Выберите там
Table1.
Теперь выделите сетку DBGrid. Ей нужно указать, какой компонент будет управлять
этой сетью. В свойстве DataSource укажите наш DataSource1. Все, теперь мы сделали все
приготовления. Единственное, что осталось сделать - открыть файл с таблицей. выделите
компонент Table1, и в свойства Active укажите True. Этим самым мы заставим таблицу
открыться.
Внимание! Работа с базой данных отличается от работы с файлами другого типа. Когда
ваша программа работает, например, с текстовым файлом, она открывает этот файл, считывает
его содержимое в оперативную память ПК и закрывает его. Пользователь работает уже не с
файлом, а с его содержанием в оперативной памяти. Когда он дает команду сохранить
результаты работы, программа снова открывает файл и перезаписывает в него данные из
оперативной памяти.
С базами данных все иначе. Как только вы открыли таблицу - указали True в компонента
Table1 в свойстве Active, или программно дали команду:
Table1.Active = True;
или
Table1.Open;
то тем самым вы открыли файл. Файл будет открыт в течение всего сеанса, и все
изменения данных будут немедленно сохраняться в нем! Приведенные выше команды открытия
таблицы идентичны, вы можете пользоваться любым из этих способов.
Если вы все сделали правильно, то должны получить что-то вроде этого:
Навигация
Типы данных
Листая таблицу, вы видели такие данные, как MEMO и GRAPHIC, а сами данные не
отражались. Дело в том, что таблицы имеют различные типы данных. Бывают числовые типы,
строчные, типа "Дата". Обычно, в строчный тип ввода текста длиной не более 255 символов.
Если же вам нужно поместить в таблицу длиннее текст, например, аннотацию к книге, то можно
воспользоваться типом MEMO. При этом создается новый файл, в котором сохраняется сам
текст, а в таблице указана ссылка на этот текст. Длина текста в MEMO ограничено. Для
отображения MEMO потребуется специальный компонент.
Поле GRAPHIC сохраняет изображения - картинки, фотографии. Для их отображения
также требуется специальный компонент.
Улучшим наш пример, создав форму, в которой, как в карточке, мы сможем видеть все
данные текущей записи. Однако для начала познакомимся с DataModule. Это модуль, который
не имеет формы. Его очень удобно использовать в многооконный проектах, где окна работают с
общими данными. Для нас общие данные - это компоненты Table и DataSource.
Прежде всего, закройте таблицу, указав False в ее свойства Active.
Выберите File-> New -> Data Module. У вас появится новое окошко, но это не форма.
Измените имя этого окна на fDM, чтобы не нужно было писать долгого обращения к
компонентам. Теперь вернитесь на главную форму и выделите компоненты Table1 и
DataSource. Выберите Edit -> Cut ( вырезать). Затем перейдите в окно fDM, и выберите Edit ->
Paste ( вставить). Если у вас эти компоненты были в нижней части формы, то они могут
оказаться вне зоны видимости окна fDM. Это не страшно - перейдите окно, или увеличьте его
5
размеры, чтобы видеть компоненты, а затем перетащите их в верхнюю часть окна. После чего
можно уменьшить размеры fDM. Сохраните окно в модуле DM.pas.
Далее переходим на главную форму. Эта форма должна видеть окно fDM, чтобы работать
с компонентами, установленными в нем, поэтому выберите команду File -> Use -> Unit и там
выберите DM.
Теперь выделите сетку. В ее свойства DataSource нужно выбрать наш DataSource,
который выглядит уже как fDM.DataSource1. Теперь откройте таблицу, указав True в ее
свойства Active. Как видите, данные по-прежнему отображаются, хотя компоненты доступа
хранятся в другом модуле.
Теперь мы готовы к тому, чтобы создать новое окно для просмотра данных. Создайте
новую форму, назовите ее fViewer, и сохраните в модуле Viewer. Не забудьте выбрать команду
Use -> Unit и там - DM, ведь новая форма также будет работать с компонентами Table1 и
DataSource. В свойстве Caption напишите "Карточка".
Species No
Category
Common_Name
Species Name
Length (cm)
Length_In
Собственно, карта готова. Осталось только вызвать ее с главной формы. Если вы еще не
выполнили для главной формы команду File -> Use Unit, и не выбрали там модуль Viewer, то
сделайте это сейчас. Затем выделите сетку и создайте для нее событие onDblClick, где
пропишите вызов окна - карточки:
fViewer.ShowModal;
Теперь пользователь, щелкнув дважды какой либо записи, вызовет карточку, где будут
отражены данные этой записи. Однако перед компиляцией проекта необходимо несколько
исправить. Мы запрограммировали наши 4 кнопки перемещения, когда еще компонент Table1
был на главной форме. Однако теперь он в окне DM, поэтому добавьте fDM перед обращением
к таблице во всех 4 кнопках, как в примере:
fDM.Table1.First;
V. Оформление отчета.
VI. Защита работы.