Глава 24. Обзор проблем программирования и написания скриптов__________559
Взгляните еще'раз на приведенную выше таблицу и поставьте вместе объекты и события. Телефон звонит. Кошка мяукает. Растение сохнет. Заметили схему? Событие приходит от объекта. Иными словами, объекты генерируют события в ответ на ваши действия. Нажмите кнопку в Windows — будет сгенерировано соответствующее событие. Напечатайте букву в окне редактирования — это вызовет генерацию события "изменение содержимого окна". Здесь уместно вспомнить собаку Павлова — зазвенел звонок, и у собаки началось слюноотделение.
Использование механизма событий имеет множество преимуществ перед традиционным стилем программирования. Самым большим преимуществом является то, что вы не теряете контроля над своим компьютером. Рассмотрим эти преимущества:
+ События позволяют задать порядок выполнения программы. Щелкая в различных местах экрана, таких как кнопки, меню, окна, мы запускаем на выполнение различные фрагменты кода. Для сравнения приведем пример приложения, в котором порядок действий предопределен:оно запускается с самого начала, ожидая получить определенные входные данные в определенный момент времени, и завершает работу, когда попадает на последнюю строчку кода.
+ Когда событийно-управляемая программа ожидает возникновения события, большинство ресурсов компьютера не используется. Это позволяет решать другие задачи, например, запускать другие программы. Как это работает? Событийно-управляемые программы выполняют бесконечный цикл, в котором анализируют наличие сообщений; если их нет, то они возвращают управление операционной системе, которая может обратиться к другой задаче.
+ События просто программируются.
Вместо того чтобы постоянно контролировать каждое устройство ввода, программа лишь должна ожидать прихода события от операционной системы. Программа не упустит произошедшего события, так как все события становятся в очередь и ожидают, пока программа обработает их.
+ События позволяют программам работать с объектами, которые сами определяют свое поведение. Операционная система просто перенаправляет событие к объекту, а соответствующий обработчик события объекта определяет, как с ним поступить. Программа может не знать, как объект работает внутри себя, она лишь должна знать, как общаться с объектом. Например, вам совсем не нужно знать, как работает автомобиль, для того чтобы управлять им, не так ли? Вы лишь посылаете ему команды, нажимая педаль газа и вращая руль. Ну и, конечно, нажимая педаль тормоза!
Как события используются в Windows (и других системах)
Когда вы щелкаете мышью на объекте, система Windows посылает ему сообщение о произведенном действии. Одновременно посылаются данные,