Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции програм_new_последняя версия1.doc
Скачиваний:
14
Добавлен:
14.09.2019
Размер:
697.34 Кб
Скачать

Объектно-событийное программирование. События

Программистам, работающим в Windows можно не пояснять смысл слова событие. Сама среда Windows и написанные в ней программы управляются событиями, возникающими в результате действия пользователя, а также аппаратуры ПК и других программ. Программирование, ориентированное на события - неотъемлемая черта Windows. Delphi предоставляет полный доступ к подструктуре событий, предоставляемой Windows. С другой стороны, Delphi упрощает программирование обработчиков таких событий.

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

Property OnMyEvent:TMyEvent read FOnMyEvent

write FOnMyEvent;

Здесь OnMyEvent – имя свойства, TMyEvent – процедурный тип; FOnMyEvent – есть поле объекта, содержащее адрес некоторого метода. Присвоить свойству значение – значит указать объекту адрес метода, который будет вызван в момент наступления события.

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

Все события Delphi принято предварять префиксом On. Например, OnClickсобытие при щелчке клавиши мыши, OnKeyPressпри нажатии любой клавиши клавиатуры, OnCreate при создании компонента, OnMouseMove – при перемещении мыши.

Щелкнув в инспекторе объектов на странице Events в поле нужного события, вы получите в программе заготовку метода нужного типа. При этом имя метода будет состоять из имени текущего компонента и имени события (без префикса on), относиться он будет к текущей форме. Например, пусть на форме Form1 есть кнопка Button1, тогда для обработки щелчка мыши на кнопке (событие OnClick) будет создана заготовка метода:

procedure Form1.Button1Click(Sender:TObject);

begin

. . . . . .{вставить программный код}

end;

Реакции на события

Приложения Delphi являются интерактивными системами, в которых для организации взаимодействия между пользователем и программой используют методы, управляемые событиями. Приложение Delphi реагирует на событие - сигналы от мыши, клавиатуры и системные события (например, в результате нарушения системных ограничений). Различные объекты могут реагировать на различные совокупности событий.

Для организации реакции на события можно:

  1. Проигнорировать событие, т.е. не писать процедуры для реакции на это событие, при этом поведение объекта определяется по умолчанию;

  2. Перехватить событие, для этого надо написать текст процедуры – обработчика собы­тия, при этом можно модифицировать или изменить поведение объекта, задаваемое по умолча­нию. Это может быть, например, изменение вида курсора при попадании в определенную область на экране или изменение доступности компонента с помощью свойства Enabled.

Например, последовательность действий при перехватывании события OnClick - щелчка мыши для управляющей кнопки Button1, состоит в следующем:

  1. Возникает событие нажатия на кнопку с именем Button1, для этого пользователь уста­новит курсор на кнопку и нажмет левую клавишу мыши (т.е. осуществит щелчок мыши по кнопке Button1), возникнет событие по имени OnClick - щелчок на кнопке;

  2. Объект Button1 перехватывает это событие, так как для него имеется обработчик собы­тия;

  3. Delphi ищет процедуру с именем, соответствующим имени задействованного объекта (Button1) и имени события (OnClick), т.е. процедуру Button1Click.

Имя процедуры обработчика события состоит из Buttonl1 – имени объекта, на котором произошло событие, и Click – имени события (без префикса On).

Разработчик приложения с помощью Delphi должен писать только обработчики событий. Перехват событий и организацию вызова обработчиков событий реализует программа Delphi.