На этом шаге мы рассмотрим свойства, методы и события класса
TApplication.
Свойства класса TApplication
Методы класса TApplication
События класса TApplication и их обработка
Компонент TApplication инкапсулирует приложение при выполнении. Delphi автоматически создает экземпляр Application класса TApplication при выполнении приложения. Для использования этого объекта включите модуль Forms в раздел Uses.
TApplication предоставляет несколько свойств, с помощью которых можно отслеживать состояние приложения и контролировать некоторые аспекты его поведения.
Application.Icon.LoadFromFile('INACTIVE.ICO'); .
Рис.1. Вкладка Application
Свойство может изменяться программно, например, изменяя надпись в зависимости от режима работы приложения.
Рассмотрим некоторые методы объекта Application. Методы Initialize - инициализация объекта, и Run - запуск выполнения приложения, включаются в каждый проект автоматически. Это можно увидеть в файле проекта (пункт меню Project | View Source). Там же размещается метод создания форм CreateForm для всех автоматически создаваемых форм проекта. Общий вид этого метода следующий:
Application.CreateForm (<класс создаваемой формы>, <ссылка на создаваемый объект (имя объекта)>); .
При выполнении метода:
Application.CreateForm (TForm2, Form2);
Метод Terminate завершает выполнение приложения. Если нужно завершить приложение из главной формы, то вместо метода Application.Terminate можно использовать метод Close главной формы. Но если требуется закрыть приложение из какой-нибудь вторичной формы (например, из окна диалога), то нужно применить метод Application.Terminate.
Метод Minimize сворачивает приложение, помещая его пиктограмму на панель задач. Метод Maximize разворачивает приложение на весь экран.
Объект класса TApplication создается только при выполнении приложения, значит на этапе разработки приложения все его события недоступны. Поэтому нельзя использовать Инспектор объектов (Object Inspector) для создания обработчиков событий. Однако в некоторых случаях требуется создавать обработчики событий этого класса. Приведем общий способ создания обработчиков событий класса TApplication.
Сначала опишем обработчик события. Поскольку событие распознается и запускается объектом, обработчик должен быть методом объекта. Он также должен соответствовать соглашению о вызовах события, которое обычно описано в справочной системе. Например, из файлов справки можно узнать, что событие OnActivate типа TNotifyEvent является наиболее общим типом. Его описание выглядит так:
TNotifyEvent = procedure (Sender: TObject) of Object;
Это описание говорит о том, что обработчик должен получать параметр TObject, который позволяет определить, какой именно объект распознал и отослал событие.
Создадим новое приложение и модифицируем описание TForm1:
type TForm1 = class(TForm) private {Закрытые объявления.} protected {Защищенные объявления.} //Заголовок обработчика. procedure OnActivateHandler(Sender: TObject); public {Открытые объявления.} end;
Описание обработчика как protected не несет особой нагрузки и принято по умолчанию. Важно лишь, чтобы он был методом класса.
Теперь, когда мы описали обработчик, определим его. Для этого нужно поместить код этого обработчика в раздел implementation модуля:
procedure TForm1.OnActivateHandler(Sender: TObject); begin MessageDlg('Привет всем!!!', mtInformation,[mbOk], 0); end;
При выполнении этого обработчика на экран выводится диалоговое окно с сообщением: Привет всем!!!, кнопкой OK и картинкой с символом i.
Наконец, назначим обработчик событию. Обычно это выполняется в событии OnCreate главной формы. Измените обработчик события OnCreate класса TForm1 следующим образом:
procedure TForm1.FormCreate(Sender: TObject); begin Application.OnActivate:= OnActivateHandler; end;
Эта конструкция означает, что при возникновении события Application.OnActivate будет выполняться процедура OnActivateHandler.
В результате выполнения этого приложения на экране будет следующая "картинка":
Рис.2. Внешний вид приложения
На следующем шаге мы продолжим рассматривать обработку событий класса TApplication, в частности, познакомимся с компонентом ApplicationEvents.
Свойства класса TApplication
Методы класса TApplication
События класса TApplication и их обработка