ВУЗ:
Составители:
Рубрика:
38
Метод ClearEvent-очистка события
ClearEvent очищает событие, присваивая полю event.What значение
evNothing.
Главный цикл обработки событий (метод Execute)
Главный цикл обработки событий реализуется в методе Execute
главной группы-объекта “прикладная программа” по следующей схеме:
int TMyApp::Execute()
{do{endState=0;
GetEvent(event); //получить событие
HandleEvent(event); //обработать событие
if(event.what!=evNothing) //событие осталось не обработано
EventError(event);
}
while(!Valid());
return endState;
}
Метод HandleEvent программы обрабатывает событие “конец рабо-
ты”, вызывая метод EndExec. EndExec изменяет значение private – пере-
менной EndState. Значение этой переменной проверяет метод–функция
Valid, возвращающая значение true, если “конец работы”. Такой несколько
сложный способ завершения работы программы связан с тем, что в актив-
ном состоянии могут находиться несколько элементов группы. Тогда ме-
тод Valid группы, вызывая методы Valid своих подэлементов, возвратит
true, если все они возвратят true. Это гарантирует, что программа завершит
свою работу, когда завершат работу все ее элементы.
Если событие осталось не обработанным, то вызывается метод
EventError, которая в простейшем случае может просто выдать сообщение.
Пример обработки событий
Рассмотрим простейший калькулятор, воспринимающий команды в
командной строке. Здесь приводится упрощенный вариант. Вариант, по
схеме которого следует выполнить лабораторную работу, приведен в при-
ложении.
Формат команды:
знак параметр
Знаки +, –, *, /, =, ?, q
Параметр – целое число
Константы-команды:
сonst int evNothing = 0;
сonst int evMessage = 100;
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »