AplicationEvents в Delphi

Невизуальный компонент, перехватывает события приложения Application.

Страница библиотеки Additional

Класс TApplicationEvents

Иерархия TObject – Tpresent – Tcomponent – TcustomApplicationEvents

Модуль Appevnts

Компонент AplicationEvents позволяет перехватывать события приложения – объекта Application типа
TApplication.
У этого объекта, не имеющего соответствующего ему компонента в VCL, есть множество полезных событий. Компонент
AplicationEvents позволяет писать обработчики этих событий как обработчики событий AplicationEvents.

На каждой форме приложения возможно поместить свой компонент AplicationEvents. События объекта Application
будут переданы всем этим компонентам. Если вам необходимо, чтобы событие передавалось какому-нибудь компоненту,
то нужно применить к этому компоненту метод – Activate, который установит этот компонент в начало очереди
компонентов AplicationEvents. Если вам при этом нет нужды, чтобы другие компоненты AplicationEvents получали
события, примените к компоненту, который имеет привилегии, метод – CancelDispatch. Вследствие после
обработки события в этом компоненте другие компоненты AplicationEvents вообще не отреагируют на эти события.

Во многие события обработчика компонента AplicationEvents могут быть переданы посредством ссылки параметром Handled.
По умолчанию Handled = false. При установке Handled = true следующие компоненты AplicationEvents
не будут обрабатываться.

Пример:

Обработчик события OnHint:

Procedure TForm2.AplicationsEvents1Hint(Sender: TObject);

Begin

MyStatusBar.SimpleText:=Application.Hint;

End;


покажет в полосе состояния MyStatusBar 2 часть свойства Hint какому угодно компоненту, в котором
обусловлено это свойство и над которым перемещается курсор мышки. Отображение будет происходить вне
зависимости от значения свойства компонента ShowHint.

Основные методы:

  • Activate (procedure Activate;) – ставит данный компонент в начало очереди компонентов AplicationEvents.
    В результате все события пересылаются прежде всего этому компоненту;
  • CancelDispatch (procedure CancelDispatch;) – предотвращает обработку текущего события другими объектами
    AplicationEvents.

Некоторые события:

  • OnActionUpdate возникает при обновлении некоторого действия, который объявлен в компоненте ActionList,
    но не обработанного им. Обработчику будет передан параметр Action – действие и по ссылке параметр Handled;
  • OnActivate наступает, когда активируется приложение. Если это событие было обработано в AplicationEvents,
    то предотвратить дальнейшую его обработку можно вызвав метод CancelDispatch;
  • onIdle возникает, когда приложение простаивает, ожидая действий пользователя. В обработчик передается
    параметр Done, у которого по умолчанию значение – true. Если оставить его без изменений, то при завершении
    работы обработчика будет реализован вызов функции WaitMassage API Windows, которая будет заниматься во время
    ожидания другими приложениями;
  • OnMessage наступает при получении приложением сообщения Windows;
  • OnShowHint наступает если приложение собирается отобразить ярлык с текстом подсказки Hint. В обработчик
    передаются по ссылке три параметра: HintStr – первая часть свойства компонента Hint, ярлык которого будет отображен;
    второй параметр CanShow. При установке в значение false – ярлык отображаться не будет; третий параметр, который
    передается это HintInfo – структура, поля которой содержат информацию о ярлыке.
Комментирование и размещение ссылок запрещено.