Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
58
Добавлен:
10.12.2013
Размер:
24.58 Кб
Скачать

ВОПР 5

События

Событие — это специальное свойство, являющееся указателем функции. Тип обобщенного указателя на функцию, которой передается один параметр типа ТОЬject (обычно Self — данный объект), — TNotifyEvent. Подобный тип используется в Delphi для событий типа OnClick и многих других, которые передают в обработ­чик только один параметр — Sender: TObject. Если требуется ввести в класс подоб­ное событие, достаточно определить в объявлении класса соответствующее поле и метод работы с ним. Например:

private

FMyEvent: TNotifyEvent;

published

property MyEvent: TNotifyEvent read FMyEvent write FMyEvent;

При возникновении события надо про­верять функцией assigned, которая возвращает true, имеется ли обработчик пользователя, и, если имеется, то вызвать его. Для этого можно использовать оператор вида:

if assigned(FMyEvent) then OnMyEvent(Self);

Функция OnMyEvent, которая вызывается этим оператором, это и есть обра­ботчик пользователя. Его имя совпадает с именем свойства, перед которым добав­ляется префикс «On».

Место, куда надо включать подобный оператор, зависит от вида события. Если событие вызывается каким-то из ваших методов, то вызов обработчика пользовате­ля надо осуществлять из этого метода. Если событие связано с какими-то сообщениями, поступающими от других приложений или от Windows, то надо предусмот­реть обработчик соответствующего сообщения и из него вызывать обработчик пользователя.

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

Обработчики сообщений.

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

программа при выполнении того или иного действия. В основном все обработчики одинаковы для всех классов, но для каждого класса существуют свои, специфические обработчики.

Познакомимся с основными из них на примере обработчиков TEdit:

• OnChange - программа реагирует на изменение значений компоненты (например, на каждое вводимое значение)

• OnClick - программа реагирует на нажатие клавиши мыши на эту компоненту.

• OnDoubleClick (DblClick) - двойное нажатие клавиши мыши.

• OnKeyPress - программа реагирует на нажатие клавиши клавиатуры.

Соседние файлы в папке Делфа длАТПП-01