Программа, управляемая событиями

Содержание

Слайд 2

Событие в ООП Событие в ООП – это то, что может

Событие в ООП

Событие в ООП – это то, что может

случится с каким-либо объектом при определенных условиях (например, с кнопкой при клике на неё мышкой). При взаимодействии других объектов с этим событием (клик мыши), данный объект будет знать, что клик мыши произошел.
• При выполнении события вызывается обработчик подписанного на это событие объекта.
• Событие с точки зрения языка С++ – это объект, отдельные поля которого характеризуют те или иные свойства передаваемой информации.
Слайд 3

Oбъектно-ориентированная программа Oбъектно-ориентированная программа – это программа, управляемая событиями. События сами

Oбъектно-ориентированная программа

Oбъектно-ориентированная программа – это программа, управляемая событиями.
События сами по

себе не производят никаких действий в программе, но в ответ на событие могут создаваться новые объекты, модифицироваться или уничтожаться существующие, что и приводит к изменению состояния программы.
Иными словами все действия по обработке данных реализуются объектами, а события лишь управляют их работой.
Слайд 4

Объединения Объединения — это структура данных, члены которой расположены по одному

Объединения

Объединения — это структура данных, члены которой расположены по одному и

тому же адресу. Поэтому размер объединения равен размеру его наибольшего члена. В любой момент времени объединение хранит значение только одного из членов.
Слайд 5

Анонимные объединения Анонимные объединения — это те же объединения, но не

Анонимные объединения

Анонимные объединения — это те же объединения, но не имеющие

ни названия, ни порожденных от себя объектов.
Слайд 6

Пример структуры события Событие с точки зрения языка С++ – это

Пример структуры события

Событие с точки зрения языка С++ – это объект,

отдельные поля которого характеризуют те или иные свойства передаваемой информации.
В данном примере, объект Event состоит из двух частей. Первая (what) задает тип события, определяющий источник данного события.
Вторая задает информацию, передаваемую событием. Для разных типов событий содержание информации различно.
Слайд 7

Пример структуры события от мыши evMouse – событие от мыши (константа,

Пример структуры события от мыши

evMouse – событие от мыши (константа, которая

присваивается полю what и обозначает тип события)
buttons указывает нажатую клавишу;
doubleClick указывает был ли двойной щелчок;
where указывает координаты мыши, имеет поля x и y;
Слайд 8

Пример структуры события от клавиатуры evKeyDown – событие от клавиатуры (константа,

Пример структуры события от клавиатуры
evKeyDown – событие от клавиатуры (константа, которая

присваивается полю what и обозначает тип события)
Слайд 9

Пример структуры события - сообщения от объекта Для события сообщения от

Пример структуры события - сообщения от объекта

Для события сообщения от объекта

(evMessage) задаются два параметра:
command – код команды, которую необходимо выполнить при появлении данного события;
info – передаваемая с событием (сообщением) информация.
Слайд 10

Методы обработки событий Для организации обработки событий необходимы следующие методы: Execute

Методы обработки событий

Для организации обработки событий необходимы следующие методы:
Execute - реализация

главного цикла обработки событий. Данный метод постоянно получает событие путем вызова GetEvent и обрабатывает их с помощью HandleEvent.
GetEvent - метод формирования события
HandleEvent - метод обработки событий
ClearEvent - метод очистки текущего события
EndExec - завершение обработки событий(после вызова этого метода цикл обработки событий заканчивается)
Слайд 11

Лабораторная работа 8. Вариант 15 Определить иерархию пользовательских классов. Во главе

Лабораторная работа 8. Вариант 15

Определить иерархию пользовательских классов. Во главе иерархии

должен стоять абстрактный класс с чисто виртуальными методами для ввода и вывода информации об атрибутах объектов.
Реализовать конструкторы, деструктор, операцию присваивания, селекторы и модификаторы.
Определить класс-группу на основе структуры, указанной в варианте.
Для группы реализовать конструкторы, деструктор, методы для добавления и удаления элементов в группу, метод для просмотра группы, перегрузить операцию для получения информации о размере группы.
Определить класс Диалог – наследника группы, в котором реализовать методы для обработки событий.
Добавить методы для обработки событий группой и объектами пользовательских классов.
Написать тестирующую программу.
Слайд 12

Иерархия пользовательских классов

Иерархия пользовательских классов

Слайд 13

Иерархия пользовательских классов

Иерархия пользовательских классов

Слайд 14

Класс-группа Класс-группа

Класс-группа
Класс-группа

Слайд 15

Класс Диалог – наследник группы, в нем реализованы методы для обработки событий

Класс Диалог – наследник группы, в нем реализованы методы для обработки

событий
Слайд 16

Диаграмма классов

Диаграмма классов

Слайд 17

Слайд 18

Методы класса Dialog

Методы класса Dialog