Delphi 5.Учебник
f65d50f6

Поскольку при создании TApplication недоступен,


Обработка событий TApplication
Поскольку при создании TApplication недоступен, установка его обработчика события затруднена из-за невозможности использования инспектора объектов (Object Inspector).
Сначала опишем обработчик события. Поскольку событие распознается и запускается объектом, обработчик должен быть методом объекта. Он также должен соответствовать соглашению о вызовах события, которое обычно описано в системе справки. Например, из файлов справки можно узнать, что событие OnActivate типа TNotifyEvent является наиболее общим типом. Его описание его выглядит так:
TNotifyEvent = procedure (Sender: TObject) of Object;
Это описание говорит о том, что ваш обработчик должен получать параметр TObject, который позволяет определить, какой именно объект распознал и отослал событие.
Создадим новое приложение и модифицируем описание TForm1.
type
TForm1 = class(TForm)
private
{Закрытые объявления.}
procedure OnActivateHandler(Sender: TObject);
public
{Открытые объявления.}
end;
Описание обработчика как protected не несет особой нагрузки и принято по умолчанию. Важно лишь, чтобы он был методом класса.
Теперь, когда мы описали обработчик, определим его. Добавьте следующий код в раздел implementation вашего модуля.
procedure TFormI.OnActivateHandler(Sender: TObject);
begin
{Код вашего обработчика.}
end;
Совет: Определение процедуры или функции не требует перечисления списка параметров, так как он был дан при описании. Вы можете его повторить для повышения удобочитаемости и ясности программы.

Наконец, назначим обработчик событию. Обычно это выполняется в событии OnCreate главной формы. Измените обработчик события OnCreate класса Tform1 следующим образом.
procedure TFormI.FormCreate(Sender: TObject);
begin
Application.OnActivate:= OnActivateHandler;
end;
OnActivate и OnDeactivate
Эти события оповещают программу об изменении свойства Active.
OnException
Событие вызывается при необработанной исключительной ситуации.
OnHint
Событие генерируется при перемещении указателя мыши над объектом— потомком TControl, если его свойство Hint равно значению, которое отличается от пустой строки.
Onldle
Событие генерируется, когда приложение ожидает ввода и не занято обработкой события. Обычно оно используется для выполнения фоновых задач наподобие загрузки базы данных или обработки изображения.
Обработчик получает логический параметр Done, по умолчанию равный True. Если вы оставляете его равным True, обработчик не запустится до тех пор, пока не будет получено и обработано очередное сообщение. Если вы установили Done равным False, обработчик будет запускаться во время ожидания сообщения.
Поскольку во время работы обработчика приложение не отрабатывает сообщения, делайте его более коротким либо не забывайте запускать из него процедуру ProcessMessages.
Ниже приведен код использования обработчика для вывода текущего времени в объекте TPanel.
procedure TFormI.OnIdleHandler(Sender: TObject; var Done: Boolean);
begin
pnlTime.Caption:= TimeToStr(Now);
end;

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