Программное добавление объекта
Для изучения способов обращения к объектам ЕСО из программного кода реализуем и расширим предыдущий проект с привлечением редактора исходных текстов.
Перейдем к форме Преподаватели. Удалим все кнопки на форме. Все действия будут вызываться из главного меню.
Добавим на форму компонентMainMenu(категорияComponents). Создадим пункт Действие, в нем три пункта Кафедра, Преподаватель, Закрыть. В пунктах Кафедра и Преподаватель еще три пункта: Добавить, Редактировать, Удалить. Кроме команд в меню можно добавить разделитель – горизонтальную линию. Для этого следует выделить команду, перед которой надо поместить разделитель, и из контекстного меню выбрать командуInsertSeparator(см. Рисунок 10 .73).
Рисунок 10.73 – Вставка разделителя в список команд
Для работы с объектами таблицы будем применять отдельные окна. Создадим новую форму командой File > New > Other. Выберем значок ECO Enabled Windows Form из вкладки New ECO Files (категория Delphi for .NET Projects). В этой форме будем добавлять кафедру, назовем ееwfChairAdd(классTChairAdd), в свойствеTextвведем значение Добавление кафедры.
Настроим вызов этой формы по выбору пункта меню Действие > Кафедра > Добавить. Перейдем к вкладке Codeформы Добавление кафедры. Объявим переменную, ответственную за создание данной формы:
var
callChairAdd: TChairAdd;
Чтобы вызвать форму как дочернюю в Главной форме, создадим в последней переменную ParentWin:TMain. В конструкторе создания Главной формы (constructor TMain.Create) пропишем строку:
ParentWin := self;
Теперь мы можем обращаться через эту переменную к родительскому окну.
Перейдем к форме Преподаватели. Чтобы в ней были видны созданные переменные, подключим формы wfChairAddиwfMainкомандойFile>UseUnit.
На событие выбора пункта меню Действие > Кафедра > Добавить пропишем следующие операции:
callChairAdd := TChairAdd.Create(EcoSpace);
callChairAdd.MdiParent := ParentWin;
callChairAdd.Show;
Вернемся к форме Добавление кафедры. Разместим на ней три компонента Label, три компонентаTextBox(категорияWindowsForms) и две кнопки. Назовем созданные компоненты (см. Рисунок 10 .74).
Для того чтобы во время работы программы пользователь не мог при помощи мыши изменить размер окна, в свойстве FormBorderStyleнастройки формы установим значение FixedDialog. Чтобы в заголовке окна не отображались системные кнопки Свернуть, Развернуть и Закрыть, в свойствеControlBoxустановим значениеFalse.
Рисунок 10.74 – Настройка компонентов формы Добавление кафедры
Подключить файл packModelUnitкомандойFile>UseUnitи выберем в свойствеEcoSpaceTypeкомпонентаRHRootзначениеprojDeanOfficeEcoSpace, чтобы получить доступ к пространствуECO. Необходимо, чтобыpackModelUnitбыл объявлен в разделе интерфейса модуля формы.
interface
uses
packModelUnit,
…
Создадим обычный обработчик нажатия кнопки ОК. В нем запишем команду создания нового объекта Кафедра. Для этого задействуем конструктор (метод класса Кафедра), существующий во всех классах ЕСО. Параметром его должна быть ссылка на объектное пространство модели, автоматически создаваемое на время работы программы. Эта ссылка представлена идентификатором EcoSpace, который обозначает свойство текущей формы, автоматически создаваемое для проекта ЕСО. После создания пустого объекта необходимо заполнить поля данными. Для этого присвоим значения, введенные пользователем, соответствующим полям созданного объекта.
procedure TChairAdd.Button1_Click(sender: System.Object; e: System.EventArgs);
var
NewChair : clChair;
begin
NewChair := clChair.Create(EcoSpace);
NewChair.ChairName := TextBox1.Text;
NewChair.ChairHeadSNP := TextBox2.Text;
NewChair.ChairSecrSNP := TextBox3.Text;
Close; // закрытие окна
end;
Данный код функционально эквивалентен визуальной настройке кнопки на действиеAdd(Добавить). Тогда мы выбрали поставщик объектов (корневой дескриптор, связанный с объектным пространством) в ее свойствеRootHandle. Выполняемое кнопкой действие (создание объекта) задавалось в ее свойствеEcoListAction.
Новый экземпляр класса clChairавтоматически разместится в кэше объектного пространстваEcoSpace. Через дескрипторehChairон также автоматически представляется в таблице – специальные действия для этого программировать не надо. Если теперь запустить программу, то после нажатия кнопки таблица пополняется новыми объектами.
Сформируем обработчик нажатия кнопки Отмена. По нажатию на эту кнопку создания объекта происходить не должно, окно закрывается.
procedure TChairAdd.Button2_Click(sender: System.Object; e: System.EventArgs);
begin
Close;
end;
Введенные изменения сохраним в базе данных. Это можно сделать командой
EcoGlobalActions.ExecuteAction(EcoAction(1),RHRoot);
Поместим ее в обработчик события закрытия окна Добавление кафедры (Closed). В дальнейшем будем использовать данную команду после любого изменения данных.
Запустим приложение, проверим функционирование настроенных кнопок (см. Рисунок 10 .75).
Настроим добавление преподавателя в отдельном окне. Оно будет вызываться выбором пункта меню Действие > Преподаватель > Добавление. Так как одной кафедре может принадлежать несколько преподавателей, то перед добавлением объекта Преподаватель, нужно определить к какой кафедре необходимо его добавить. Поэтому перед созданием окна Добавление преподавателя, сохраним текущий объект кафедры в переменную:
CurChair := clChair(cmhChair.Element.AsObject);
По нажатию кнопки ОК свяжем созданный объект Преподаватель с текущим объектом Кафедра:
CurChair.roleLecturers.Add(NewLect);
Подобным образом настроим добавление дисциплины в отдельном окне. Оно будет создаваться выбором пункта меню в окне Преподаватели.
Рисунок 10.75 – Добавление объекта в отдельном окне
- «Технологии разработки программного обеспечения»
- Оглавление
- Введение
- Анализ проблемы. Постановка задачи
- Введение
- Описание примера
- Составление списка заинтересованных лиц
- Анкетирование и проведение интервью
- Список потребностей заинтересованных лиц
- Задания
- Контрольные вопросы
- Моделирование объекта автоматизации
- Введение
- Введение в методологию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
- Программное добавление объекта
- Программное удаление объекта
- Программное редактирование объекта
- Работа со справочником
- Поиск объектов
- Задания
- Контрольные вопросы
- Заключение
- Библиографический список