Компонент Delphi ApplicationEvents (события приложения)

Компонент Delphi ApplicationEvents (события приложения) располагается на странице Additional Палитры компонентов. Только во время выполнения программы доступен объект Application и для облегчения кодирования используется ApplicationEvents. Разместив компонент на форме мы можем на этапе проектирования через Инспектор объектов использовать события приложения. С его помощью возможно возможно принимать и обрабатывать все сообщения, направляемые приложению, в одном месте. Данный компонент хорошо подходит, когда в приложении требуется обрабатывать сообщения Windows.

Компоненты ApplicationEvents можно разместить на любых формах проекта. Они все получат копии сообщений, которые предназначаются приложению.

Обрабатываемые события компонента ApplicationEvents

  • OnActionExecute - не обрабатываемые действия;
  • OnException - происходит обработка исключительной ситуации, которая не описана  в блоках TRY;
  • OnMessage - принятие приложением сообщения от Windows;
  • OnDeactivate - состояние деактивизации (возникает при переключении пользователя на другую программу);
  • OnActivate - состояние активации программы;
  • OnHelp - происходит запрос справочной системы;
  • OnHint - указатель мыши располагается на объектом, который может отображать всплывающую подсказку;
  • OnIdle - выполняется, когда приложение заканчивает текущую работу и переходит в режим ожидания (процессорное время не тратиться), код должен быть маленьким, чтобы приложение не замедлило свою работу;
  • OnMinimize - сворачивание приложения;
  • OnRestore - восстановление приложения к нормальному размеру из свернутого состояния;
  • OnShortCut - нажата клавиша. Программа это сообщение получит до посылки сообщения элементу управления о нажатии клавиши;
  • OnShowHint - вывод подсказки.

Рассмотрим пример, когда нам надо определить координаты мыши в пределах окна формы, при щелчке правой кнопки. Данные будут выводиться с помощью надписи Label1.

Важный параметр Msg - описывает сообщение полученное от Windows (стандартный код сообщений Windows, описания кодов находятся в модуле Messages), до того, как оно уйдет дальше в программу.

Мы должны определить сообщение WM_RBUTTONUP - отпускание правой кнопки мыши. С помощью функции ScreenToClient происходит пересчет координат для нашего окна (формы).

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
  var P:TPoint;
begin
  if Msg.message = WM_RBUTTONUP
    then
     begin
     P := ScreenToClient(Msg.pt);
     Label1.Caption := IntToStr(P.x)+','+IntToStr(P.Y);
     end;
end;

Итог: мы рассмотрели Компонент Delphi ApplicationEvents (события приложения) и его применение в приложении.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *