ПРОЦЕСС СОБЫТИЙ
Обрабатывает все ожидающие события без блокировки для пользовательского ввода.
Синтаксис
ПРОЦЕСС СОБЫТИЙ
Пример
Эта процедура считается до 1000, пока вы не выберете STOP:
г-proevs.p
DEFINE VARIABLE ix AS INTEGER NO-UNDO.
DEFINE VARIABLE stop-sel AS LOGICAL NO-UNDO.
DEFINE BUTTON stop-it LABEL "STOP".
DISPLAY stop-it.
ON CHOOSE OF stop-it
stop-sel = TRUE.
ENABLE stop-it.
DO ix = 1 TO 1000:
DISPLAY ix VIEW-AS TEXT.
PROCESS EVENTS.
IF stop-sel THEN LEAVE.
END.
При каждом прохождении цикла процедура отображает новое значение ix и затем проверяет, ожидают ли какие-либо события обработки. Если никаких событий не произошло, выполнение продолжается и цикл повторяется. Если была выбрана кнопка STOP, это событие обрабатывается, изменяя значение stop-sel. Когда выполнение продолжается, программа выходит из цикла.
Если цикл не содержит оператора PROCESS EVENTS, событие выбора никогда не обрабатывается и цикл повторяется до тех пор, пока ix не достигнет 1000.
Примечания
Оператор WAIT-FOR обрабатывает все ожидающие события и блокирует все остальные операции, пока не произойдет указанное событие. Оператор PROCESS EVENTS обрабатывает все ожидающие события и немедленно продолжает выполнение со следующим оператором.
Если есть какие-либо асинхронные запросы, для которых события PROCEDURE-COMPLETE были получены, но еще не обработаны, этот оператор обрабатывает эти события, как описано для оператора WAIT-FOR.
Вы не можете вызвать метод .NET system.Windows.Forms.Application: DoEvent () в ABL. Оператор PROCESS EVENTS выполняет функцию этого метода.
.NET может вызывать исключения в контексте сеанса ABL при выполнении этого оператора.