Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Структура справочника и соглашения >> События и делегирование >> Реализация событий
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


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

  


Реализация событий


Рассмотрим, как реализованы события на уровне языка Object Pascal. События ? это свойства процедурного типа, предназначенные для создания пользовательской реакции на те или иные входные воздействия:

property OnMyEvent: TMyEvent read FOnMyEvent write FOnMyEvent;

Присвоить такому свойству значение ? это означает указать объекту адрес метода, который будет вызываться в момент наступления события. Такие методы назовем обработчиками событий. Например, когда вы пишете

Application.OnActivate := MyActivatingMethod;

это означает, что при каждой активизации Application (так называется объект, соответствующий работающему приложению) будет вызван метод-обработчик MyActivatingMethod.

Внутри библиотеки времени выполнения Delphi вызовы обработчиков событий находятся в методах, обрабатывающих сообщения Windows. Выполнив принципиально необходимые действия, этот метод проверяет, известен ли адрес обработчика, и, если это так, вызывает его:

if Assigned (FOnMyEvent) then FOnMyEvent (Self);

События имеют разные типы в зависимости от происхождения и предназначения. Общим для всех является параметр Sender ? он указывает на объект-источник события. Самый простой тип ? TNotifyEvent ? не имеет других параметров:

TNotifyEvent = procedure (Sender: TObject) of object;

Тип метода, предназначенный для извещения о нажатии клавиши, предусматривает передачу программисту кода этой клавиши, о передвижении мыши ? ее координат и т. п. Подробно конкретные события описаны в разделе "Библиотека визуальных компонентов".

Все события в Delphi принято именовать с "On": OnCreate, OnMouseMove, OnPaint и так далее. Щелкнув в Инспекторе объектов на странице Events в поле любого события, вы получите в программе заготовку метода нужного типа. При этом его имя будет состоять из имени текущего компонента и имени события (без "On"), а относиться он будет к текущей форме. Пусть, например, на форме Form1 есть текст Label1. Тогда для обработки щелчка мышью на нем (событие OnClick) будет создан метод TForm1.Label1Click.



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

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017