Турбо Паскаль 6.0



         

Откуда приходят события.


Как сказано в главе 1, главный цикл обработки в TApplication, метод Run вызывает TGroup.Execute, которая основана на цикле:

var E: TEvent; E.What := evNothing; { указывает что нет событий } repeat if E.What <> evNothing then EventError(E); GetEvent(E); { упаковывает запись события } HandleEvent(E); { направляет событие в нужное место } until EndState <> Continue;

По существу GetEvent смотрит вокруг и проверяет, не случилось ли что либо, что должно быть событием. Если случилось, GetEvent создает соответствующую запись события. Затем HandleEvent направляет событие в соответствующие видимые элементы. Если событие не обработано (и не очищено) за время пока оно не вернется в этот цикл, то вызывается EventError, чтобы указать на ненужное событие. По умолчанию EventError ничего не делает.




Содержание  Назад  Вперед