Подключение классов
После создания форм к интерфейсу нужно подключить классы. Для этого в главной форме проекта реализуем два события:
OnCreate– по этому событию создаётся объектTConnection, выполняется подключение к БД, и создаются объекты класса бизнес логики.
OnClose– по этому событию удаляются все созданные объекты.
Для создания событий:
выберите объект в конструкторе форм, для которого вы хотите создать событие;
откройте вкладку Events в области инспектора
найдите требуемое событие и дважды щелкните по нему, при этом откроется редактор исходного кода на месте только что созданного события.
Пример кода для события OnCreateнашего приложения представлен ниже:
var
//Объявление переменной класса по работе с ini файлами
ini: tinifile;
// Объявление переменных для хранения параметров подключения
servername, path: string;
begin
try
//Подключение к ini – файлу
ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'config.ini');
// Чтение имени сервера, к которому необходимо подключиться, если
// он пустой значит не введен
if ini.ReadString('options','servername','')='' then
begin
servername:='localhost';
//Отображение диалога ввода имени сервера
if InputQuery('Введите имя сервера','',servername) then
begin
// Запись имени сервера в ini - файл
ini.WriteString('options','servername',servername);
end;
end;
// Чтение имени сервера
servername:=ini.ReadString('options','servername','');
// Чтение пути к файлу БД, если он пуст.
if ini.ReadString('options','path','')='' then
begin
// Вывод диалога ввода пути к файлу БД
if InputQuery('Введите путь к файлу БД','',path) then
begin
// Запись пути к файлу БД в ini - файл
ini.WriteString('options','path',path);
end;
end;
// Чтение пути к файлу БД из ini - файла
path:=ini.ReadString('options','path','');
try
// Создание объекта подключения
fConnection:=TConnection.Create;
// Установка параметров поключения
fConnection.ServerName:=servername;
fConnection.DataBaseName:=path;
fConnection.UserName:='SYSDBA';
fConnection.Password:='masterkey';
// ПодключениекБД
fConnection.Connect;
except
// В случае установки неправильных параметров подключения возникнет исключительная ситуация
ShowMessage('Неправильные параметры подключения');
// Освобождение объекта подключения
freeandnil(fConnection);
// Закрытие формы приложения
fmMain.Close;
// Закрытие приложения
Application.Terminate;
// Выход из события
Exit;
end;
finally
// Удаление из памяти переменной класса по работе с ini - файлом
FreeAndNil(ini);
end;
// Создание класса слоя Бизнес – логики по работе со студентами
fStudents:=TStudents.Create(fConnection,fConnection.TransactionObject);
// Установка источника данных для сетки строк, отображающей список // студентов
dbgStudents.DataSource:=fStudents.DataSource;
// Выбор данных
fStudents.Select;
// Создание класса слоя Бизнес – логики по работе с книгами
fBooks:=TBook.Create(fConnection,fConnection.TransactionObject);
// Установка источника данных для сетки строк, отображающей список книг
dbgBooks.DataSource:=fBooks.DataSource;
// Выбор данных
fBooks.Select;
// Создание класса слоя Бизнес – логики по работе с выданными книгами
fStudentBook :=TStudentBook.Create(fConnection, fConnection.TransactionObject);
// Установка события происходящего при перемещении между записями
fStudents.OnAfterScroll:=StudentsAfterScroll;
// Загрузка параметров выбранного студента в поля объекта
fStudents.LoadCurrent;
// Установка полей объекта
fStudentBook.fk_student:=fStudents.id;
// Выбор данных
fStudentBook.Select;
// Установка источника данных для сетки строк, отображающей список // выданных книг
dbgStudentsBook.DataSource:=fStudentBook.DataSource;
end;
Для каждого действия в компоненте TActionManagerнеобходимо реализовать событиеOnExecute, в котором будет происходить вызов классов слоя бизнес-логики. Например:
Try
// Загрузка параметров выбранного студента в поля объекта
fStudents.LoadCurrent;
// Создание формы
fmChangeStudent:=TfmChangeStudent.Create(Application);
with fmChangeStudent do
begin
// Заполнение значений компонентов на форме
seNum.Value:=fStudents.Num;
edFamily.Text:=fStudents.Family;
edName.Text:=fStudents.Name;
edSecondName.Text:=fStudents.SecondName;
// Заполнения списка отображаемого в компоненте TComboBox
cbGroup.Items.AddStrings(fStudents.GroupList);
// Установка значения отображаемого в компоненте TComboBox
cbGroup.ItemIndex:=cbGroup.Items.IndexOf(fStudents.Group);
end;
// Если пользователь нажал кнопку Принять
if fmChangeStudent.ShowModal=mrOk then
begin
// Заполнение полей объекта
with fStudents do
begin
Num:=fmChangeStudent.seNum.Value;
Family:=fmChangeStudent.edFamily.Text;
Name:=fmChangeStudent.edName.Text;
SecondName:=fmChangeStudent.edSecondName.Text;
Group:=fmChangeStudent.cbGroup.Text;
// Вызов метода обновляющего запись в таблице
Update;
end;
end;
finally
//Удаление из памяти формы
FreeAndNil(fmChangeStudent);
end;
- «Технологии разработки программного обеспечения»
- Оглавление
- Введение
- Анализ проблемы. Постановка задачи
- Введение
- Описание примера
- Составление списка заинтересованных лиц
- Анкетирование и проведение интервью
- Список потребностей заинтересованных лиц
- Задания
- Контрольные вопросы
- Моделирование объекта автоматизации
- Введение
- Введение в методологиюAris
- Описание инструментаAris. Начало работы
- Построение организационной модели
- Построение диаграммы цепочек добавленного качества
- ПостроениеeEpCмодели
- Описание объектов автоматизации
- Задания
- Контрольные вопросы
- Разработка модели вариантов использования и их спецификаций
- Введение
- Разработка модели вариантов использования
- Модель вариантов использования
- Построение модели вариантов использования
- Спецификация вариантов использования
- Основной поток
- Альтернативные потоки
- Специальные требования
- Пример спецификации варианта использования
- Алгоритм расчёта рейтингов
- Задания
- Пример написания раздела
- Назначение документа
- Наименование системы
- Сведения о заказчике и исполнителе
- Основания для выполнения работ, сроки и финансирование
- Основные понятия, определения и сокращения
- Актуальность разработки системы
- Назначение и цели создания (развития) системы
- Требования к содержимому раздела
- Пример написания раздела
- Характеристики объекта автоматизации
- Требования к содержимому раздела
- Пример написания раздела
- Организация и планирование научно-исследовательской и инновационной деятельности
- Исполнители научно-исследовательских работ
- Учет и отчетность по научно-исследовательским работам
- Требования к системе
- Требования к содержимому раздела
- Пример написания раздела
- Требования к системе в целом
- Требования к структуре и функционированию системы
- Требования к численности и квалификации персонала
- Требования к функциям (задачам)
- Описание вариантов использования
- Состав и содержание работ по созданию системы
- Требования к содержимому раздела
- Пример написания раздела
- Порядок контроля и приемки системы
- Требования к содержимому раздела
- Пример написания раздела
- Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
- Требования к содержимому раздела
- Пример написания раздела
- Создание служб необходимых для функционирования системы
- Функциональные этапы внедрения системы
- Требования к документированию
- Требования к содержимому раздела
- Пример написания раздела
- Паспорт системы
- Общее описание системы
- Руководство администратора
- Руководство пользователя
- Регламент эксплуатации
- Источники разработки
- Правила оформления
- Задание
- Бизнес-логика
- Объектно-реляционное отображение
- Структура бд
- Создание проекта вBorlandDeveloperStudio
- Добавление нового модуля в проект
- Создание классов с помощью диаграммыUml
- Добавление полей
- Добавление свойств
- Добавление процедуры
- Добавление функции
- Создание отношений между классами
- Ассоциация
- Агрегация
- Наследование
- Пример создания классов
- Создание классов и отношений между ними слоя объектно-реляционного отображения
- Создание классов слоя бизнес-логики
- Невизуальные компоненты интерфейса используемые в примере
- TimageList
- TActionManager
- Визуальные компоненты используемые в примере
- TBitBtn
- TdbGrid
- TcomboBox
- TPageControl
- Пример разработки интерфейса
- Главная форма
- Форма редактирования параметров студента
- Форма редактирования книг
- Форма отображения списка книг
- Подключение классов
- Сохранение проекта
- Задание
- Шаблоны проектирования
- Шаблон InformationExpert(информационный эксперт)
- Преимущества
- Шаблон Creator(создатель)
- Преимущества
- Шаблон LowCoupling(слабое связывание)
- Преимущества
- Шаблон HighCohesion(высокое зацепление)
- Преимущества
- Шаблон Controller(контроллер)
- Преимущества
- Применение шаблонаInformationExpert
- Применение шаблонаCreator
- Использование шаблонаHighCohesion
- Применение шаблонаController
- Задание
- Технология eco
- Язык объектных ограничений ocl
- Mdi-контейнеры
- Создание простого mda-приложения
- Основные этапы разработки приложения
- Обзор возможностей Borland Developer Studio 2006 для разработки mda-приложения
- Создание моделиUml
- Создание бд и настройкаEcOкомпонент
- Создание интерфейса
- Связывание интерфейса с моделью
- Создание логики наOcl
- Задания
- Контрольные вопросы
- РазработкаMda-приложения с использованием машин состояний
- Введение
- Автоматы
- Состояния
- Подавтоматы
- Диаграммы состояний
- Создание mda-приложений с использованием машин состояний
- Модификация модели uml
- Создание машины состояний
- Обновление базы данных
- Модификация пользовательского интерфейса
- Связывание интерфейса с моделью
- Применение автоформ
- Расширение пользовательского интерфейса
- Задания
- Контрольные вопросы
- Расширенные возможности разработкиMda-приложений
- СозданиеMda-приложения с расширенными возможностями
- Модификация моделиUml
- Программное добавление объекта
- Программное удаление объекта
- Программное редактирование объекта
- Работа со справочником
- Поиск объектов
- Задания
- Контрольные вопросы
- Заключение
- Библиографический список