Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по циклу лабораторных работ Технологии разработки программного обеспечения .doc
Скачиваний:
204
Добавлен:
06.03.2016
Размер:
3.8 Mб
Скачать
    1. Работа со справочником

Создадим справочник со списком должностей, которые можно будет назначать преподавателю. Многие операции описаны ранее, поэтому предлагается сделать их по аналогии.

  1. Перейдем к форме Преподаватели. Добавим на форму компонент dgPosition (экземпляр класса DataGrid), в нем будут отображаться список должностей выбранного преподавателя иehPosition(экземпляр классаExpressionHandle). НастроимehPosition: в свойствеRootHandleвыберем значениеcmhLecturer, а в свойствеExpressionсформируем выражение self.rolePosition. Настроим интерфейс (см. Рисунок 10 .79).

Рисунок 10.79 – Создание таблицы Должности

  1. ВкомпонентMainMenuдобавим еще два пункта: Назначить должность и Освободить от должности. При выборе пункта Назначить должность будет создаваться окно, в котором можно будет назначить должность выбранному преподавателю. Если потребуется освободить преподавателя от должности, выберем должность в таблице и нажмем пункт меню Освободить от должности.

  2. Создадим новую форму wfPositAsign (класс TPositAsign), в свойствеTextформы введем значение Назначение должности. Эта форма будет служить для выбора и назначения должности текущему преподавателю. Настроим создание формы по выбору пункта Назначить должность в главном меню формы Преподаватели. Но перед этим сохраним текущий объект Преподаватель, который будет использован в форме Назначение должности. Настроим интерфейс созданной формы (см. Рисунок 10 .80).

Рисунок 10.80 – Настройка компонентов формы Назначение должности

Компонент Labelдобавлен на форму, чтобы отобразить в его поле Ф.И.О. выбранного в таблице преподавателя. Выбирать нужную должность будем с помощью компонентаComboBox– выпадающего списка. Если нужная должность отсутствует, ее можно будет добавить в отдельном окне. Окно добавления должности будет создаваться нажатием кнопки, расположенной справа от выпадающего списка. При нажатии на кнопку ОК, преподавателю будет назначена выбранная должность, после чего окно закроется. При отмене произойдет закрытие окна Назначение должности.

  1. В обработчике события загрузки окна Loadзапишем одну операцию

Label1.Text := CurLect.LecturerSNP;

  1. Добавим на форму дескрипторsehPositionиcmhPosition. Настроим их на обращение к экземплярам классаclChair. В свойствеBindingContext дескриптораcmhPosition выберем значениеComboBox1.

  2. В свойстве DataSourceкомпонентаComboBox1 установим значениеehPosition, а в свойствеDisplayMember–PositionName. После этого выпадающий список будет отображать список должностей.

  3. В обработчике события нажатия кнопки ОК запишем следующий код:

var

CurPosition: clPosition;

begin

if cmhPosition.Element.AsObject is clPosition

then

begin

CurPosition := clPosition(cmhPosition.Element.AsObject);

CurLect.rolePositions.Add(CurPosition);

end;

Close;

Строка

CurLect.rolePositions.Add(CurPosition);

производит связывание выбранной должности с преподавателем.

  1. Создадим форму wfPositAdd(класс TPositAdd), заголовок формы назовем Добавление должности. В этой форма будем создавать справочник должностей. Настроим создание данной формы по нажатию кнопки, расположенной справа от выпадающего списка на форме Назначение должности. Настроим интерфейс (см. Рисунок 10 .81).

Рисунок 10.81 – Настройка компонентов формы Добавление должности

Таблицу Должности настроим на отображение списка всех должностей. По нажатию кнопки Добавить создадим новый объект класса clPosition(Должность), в котором единственный атрибутPositionNameполучит значение, введенное в поле компонентаTextBox. Кнопку Выход настроить на закрытие окна.

  1. Запустим приложение. Проверим настроенные операции (см. Рисунок 10 .82).

Рисунок 10.82 – Работа со справочником Должность