Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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 – Программное удаление объекта

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





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


Дата добавления: 2016-03-28; Мы поможем в написании ваших работ!; просмотров: 272 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинать всегда стоит с того, что сеет сомнения. © Борис Стругацкий
==> читать все изречения...

2298 - | 2047 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.