ВУЗ:
Составители:
Рубрика:
31
Procedure TApp.Execute;
Var Event: TEvent;
Begin
repeat
EndState := 0;
GetEvent (Event);
HandleEvent (Event);
until Valid;
End;
Метод HandleEvent программы обрабатывает событие “конец
работы”, вызывая метод EndExec.EndExec изменяет значение private – пе-
ременной EndState. Значение этой переменной проверяет метод-функция
Valid, возвращающая значение true, если “конец работы”. Такой несколько
сложный способ завершения работы программы связан с тем, что в актив-
ном состоянии могут находиться несколько элементов группы. Тогда ме-
тод Valid группы, вызывая методы Valid своих
подэлементов, возвратит
true, если все они возвратят true. Это гарантирует, что программа завершит
свою работу, когда завершат работу все ее элементы.
• Пример обработки событий. Рассмотрим простейший каль-
кулятор, воспринимающий команды в командной строке. Здесь приводится
упрощенный вариант. Рабочий вариант приведен в “Приложении”.
Формат команды:
знак параметр
Знаки +, –, *, /, =, ?, q
Параметр – целое число
Const evNothing = $0000;
evMessage = $0100;
cmSet = 1; {занести число}
cmGet = 2; {посмотреть значение}
cmAdd = 3; {добавить}
и т.д. cmQuit = 100; {выход}
Запись-событие:
Type TEvent = record
what: word;
case what of
evNothing: ( );
evMessage: (
command: word;
A: integer;) end;
31
Procedure TApp.Execute;
Var Event: TEvent;
Begin
repeat
EndState := 0;
GetEvent (Event);
HandleEvent (Event);
until Valid;
End;
Метод HandleEvent программы обрабатывает событие “конец
работы”, вызывая метод EndExec.EndExec изменяет значение private – пе-
ременной EndState. Значение этой переменной проверяет метод-функция
Valid, возвращающая значение true, если “конец работы”. Такой несколько
сложный способ завершения работы программы связан с тем, что в актив-
ном состоянии могут находиться несколько элементов группы. Тогда ме-
тод Valid группы, вызывая методы Valid своих подэлементов, возвратит
true, если все они возвратят true. Это гарантирует, что программа завершит
свою работу, когда завершат работу все ее элементы.
• Пример обработки событий. Рассмотрим простейший каль-
кулятор, воспринимающий команды в командной строке. Здесь приводится
упрощенный вариант. Рабочий вариант приведен в “Приложении”.
Формат команды:
знак параметр
Знаки +, –, *, /, =, ?, q
Параметр – целое число
Const evNothing = $0000;
evMessage = $0100;
cmSet = 1; {занести число}
cmGet = 2; {посмотреть значение}
cmAdd = 3; {добавить}
и т.д. cmQuit = 100; {выход}
Запись-событие:
Type TEvent = record
what: word;
case what of
evNothing: ( );
evMessage: (
command: word;
A: integer;) end;
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
