Программное удаление объекта


1) Настроим удаление объекта Кафедра. Для доступа к пространству ECO подключим к форме файл packModelUnit (в разделе interface модуля формы). В обработчике события выбора пункта меню Действие > Кафедра > Удалить запишем следующий код:

procedure TLecturer.MenuItem9_Click(sender: System.Object; e: System.EventArgs);

var

CurChair: clChair;

DelChair: string;

result: System.Windows.Forms.DialogResult;

begin

if ehChair.GetList.Count <> 0 then

begin

if cmhChair.Element.AsObject is clChair

then

begin

CurChair := clChair(cmhChair.Element.AsObject);

DelChair := 'Вы хотите удалить кафедру ' + CurChair.ChairName + ' ?';

result := MessageBox.Show(DelChair, 'Удаление кафедры', MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if(result = System.Windows.Forms.DialogResult.Yes)

then

CurChair.AsIObject.Delete;

EcoGlobalActions.ExecuteAction(EcoAction(1),RHRoot);

end;

end;

end;

Перед ликвидацией объекта надо определить, какой объект пространства ECO подлежит уничтожению. Воспользуемся компонентом cmhChair. Переменная CurChair будет хранить локальный экземпляр класса Кафедра (выделенного в таблице Кафедры). Перед удалением объекта необходимо проверить, является ли выбранный в таблице элемент представителем класса clChair. Для этого обратимся к свойству Element компонента cmhChair, которое определяет выбранный компонент. Стандартный метод AsObject позволит интерпретировать значение свойства Element как стандартный объект .NET. Сравним его тип с нужным нам типом (классом clChair).

Дескриптор ehChair организует доступ к объектам класса Кафедра. Воспользуемся его методами GetList и Count, чтобы проверить наличие хотя бы одного объекта класса Кафедра.

Воспользуемся готовым компонентом MessageBox для подтверждения удаления. В строковую переменную DelChair запишем вопросительное предложение, которое передадим в качестве параметра в метод Show компонента MessageBox. Параметр метода Show – MessageBoxButtons.YesNo позволит создать окно сообщения с двумя кнопками. Возвращаемое значение от этого компонента (Yes или No) присвоим переменной result (типа System.Windows.Forms.DialogResult). Параметр метода Show – MessageBoxIcon.Question создаст в окне сообщения иконку-вопрос.

Нам нужен интерфейс IObject созданного локального экземпляра (хранимого в переменной CurChair), присутствующий у всех объектов ECO и предназначенный для прямой манипуляции объектным пространством EcoSpace. Он позволяет, в частности, удалить нужный экземпляр класса из пространства EcoSpace. Удаление выполняется вызовом метода Delete интерфейса IObject. Затем обновляем базу данных.

2) Запустим приложение и проверим функцию удаления (см. Рисунок 10.5).

Рисунок 10.5 – Программное удаление объекта

Удаление объектов Преподаватель и Дисциплина аналогично.



Дата добавления: 2021-12-14; просмотров: 216;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.