В предыдущих версиях Delphi для создания обработчика события объекта TApplication следовало создать процедуру, а затем в явном виде присвоить имя этой процедуры обработчику события TApplication, например:
procedure TForm1.ProcMess(var msg: TMsg; var handled: boolean); begin if (msg.message=WM_SYSCOMMAND) and (msg.wParam=SC_SCREENSAVE) and (RadioGroup1.ItemIndex=1) then handled:=true else handled:=false; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage:=ProcMess; end; |
Иными словами, способ создания обработчиков таких событий отличался от привычного, использующего генерацию "заготовок" кода при щелчке на нужной строке инспектора объектов. Теперь же создавать такие обработчики событий можно и традиционным способом. Для этой цели можно использовать новый компонент TApplicationEvents, список событий которого включает все события TApplication. Этот компонент можно поместить на любую форму приложения (и даже на несколько форм), и при наступлении обрабатываемого события все имеющиеся обработчики будут выполняться по очереди. Если необходимо, чтобы один из имеющихся обработчиков этого события выполнялся первым, следует вызвать его метод Activate (например, в обработчике события OnActivate формы, на которой он находится). Для того, чтобы предотвратить выполнение последующих обработчиков данного события, можно вызвать метод CancelDispatch компонента TApplicationEvents.