Обработка событий с точки зрения Windows

   
На этом шаге мы рассмотрим общие принципы обработки событий в
Windows.

   
Обо всех происходящих в системе событиях ядро Windows информирует
окна путем
посылки сообщений их оконным функциям. Например, при создании окна
посылается сообщение
wm_Create, при его перемещении - сообщение wm_Move, в
результате нажатии
клавиши на клавиатуре посылается сообщение wm_Char, при
перемещении манипулятора мышь -
сообщение wm_MouseMove и так далее. В зависимости от характера
события выбирается адресат
сообщения - одна из оконных функций. При этом ядро Windows
посылает сообщения о
каждом событии, происходящем в системе: перемещении манипулятора мышь,
нажатии клавиши на
клавиатуре, изменении конфигурации, содержимого системных
инициализационных файлов и
в ряде других случаев. Причем источником этих сообщений может быть либо
драйвер устройства
(клавиатуры или мыши), либо ядро системы. Сначала эти сообщения
помещаются в системную очередь,
а из нее пересылаются в очередь прикладной программы, для которой
предназначены. Прикладная программа
извлекает сообщения из очереди с помощью функции GetMessage и
передает их соответствующей
оконной функции, используя вызов DispatchMessage, преобразуя ряд
сообщений с помощью
TranslateMessage. Такая комбинация функций называется циклом
обработки сообщений.
Типичный цикл обработки сообщений выглядит следующим образом:

   while GetMessage(Message,0,0,0) do
   begin
       TranslateMessage(Message);
       DispatchMessage(Message);
   end;

   
Одним из назначений средств визуального программирования, к которым
относится Delphi,
является упрощение создания Windows-приложений. Это может
достигаться различными способами,
причем иногда в ущерб полной функциональности, но в Delphi этого не
происходит. Delphi
дает разработчику полный доступ к событийной модели работы
Windows, максимально упрощая
процесс обработки того или иного события. Естественно, невозможно
предусмотреть все случаи
и полностью инкапсулировать все сообщения Windows, которых более
200. Визуальные компоненты
содержат обработчики наиболее общих (с точки зрения ядра Windows)
сообщений. При
необходимости создания обработчиков других сообщений можно
воспользоваться объектно-ориентированной
технологией. В этом случае вы создаете объект-наследник того компонента,
который должен
обрабатывать интересующее вас событие, и специальный метод-обработчик
этого события.
Но в большинстве случаев вы сможете обойтись теми обработчиками, которые
предоставляют стандартные
компоненты, включенные в состав Delphi.

   
На следующем шаге мы рассмотрим основные события, которые
обрабатываются формой.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий