Приложение – класс TApplication

 

Любой работающий с формами проект состоит под незаметной, но тем не менее очень жесткой опекой глобального объекта Application : Tapplication (рис. 9.8).

Попытка обнаружить объект Application среди обширного списка визуальных и невизуальных элементов управления палитры компонентов Delphi обречена на провал: такого компонента не существует. Названный объект описан в модуле Forms и создается автоматически в самые первые мгновения после старта исполняемого модуля. Он выполняет роль посредника между написанным в Delphi приложением и операционной средой Windows, поэтому вполне справедливо утверждение, что объект Application инкапсулирует в себе

приложение. К ключевым задачам класса TApplication относятся:

подготовка и создание главного окна приложения;

активизация приложения;

перехват сообщений (messages) Windows;

контроль за нажатием быстрых клавиш, соответствующих пунктам меню;

вывод контекстной подсказки;

обработка ошибок приложения.

Помимо этого TApplication спасает программиста от многих формальностей

Win32 API, связанных с объявлением и регистрацией оконных классов, опи-

санием оконных процедур, циклов обработки сообщений и многого другого.

Программисты Borland скрывают от нас весьма существенную часть свойств и методов Application.

В некоторой степени они правы, ведь львиную долю задач по обеспечению работоспособности приложения класс TApplication

способен решать самостоятельно, и вмешательство в его функции со стороны начинающего программиста для проекта может оказаться фатальным. Вместе с тем Delphi разрешает кое-что потрогать руками даже «чайнику». Например, на стадии визуального проектирования можно назначить приложению новую пиктограмму, придумать отображаемый на панели

задач заголовок и даже подключить файл справки. Для этого не нужно сочинять ни одной строки кода (хотя, безусловно, предусмотрен и такой способ).

В простейшем случае достаточно выбрать в меню Delphi пункт Project → Options… или нажать комбинацию клавиш Shift+Ctrl+F11. Откроется окно настройки проекта, в котором за доступ к приложению отвечает вкладка Application (рис. 9.9). Пусть скептически настроенный читатель не спешит расстраиваться, увидев такое «многообразие» возможностей по работе с классом. Далее мы познакомимся и с более серьезными способами взаимодействия с TApplication. Имя исполняемого файла и полный путь к нему содержатся в свойстве:

 

propertyExeName : string; //только для чтения

 

Это свойство не раз сослужит хорошую службу, т. к. позволяет выяснить

месторасположение программы на дисках компьютера и «привязать» к ней

другие файлы, например журнал учета работы программы. Ниже представлен листинг, регистрирующий дату первого запуска программы.

 

procedureRegisteredApplication;

varFileName : string;

F : TextFile;

Begin

FileName:=ExtractFilePath(Application.ExeName+'info.log');

ifFileAge(FileName)=-1 then{если файла с именем FileName нет}

Begin

{создаем файл и записываем в него дату первого старта}

AssignFile(F,FileName);

Try

Rewrite(F);

WriteLn(F, FormatDateTime('"First start at" dd.mm.yy', Now));

Finally

CloseFile(F);

end;

end;

end;

 

Для того чтобы идентифицировать основное окно приложения, воспользуйтесь свойством:

propertyMainForm: TForm;

 

Во время выполнения приложения можно обратиться к пиктограмме приложения:

propertyIcon: TIcon;

 

Заголовок свернутого приложения на панели задач Windows доступен

в свойстве:

propertyTitle : string;

 

Для обеспечения взаимодействия с функциями Windows API зачастую требуются данные об указателе на главное окно приложения. Для этого используют функцию Windows API FindWindow(). Указатель на самое главное (невидимое) окно вашей программы хранится в свойстве:

propertyHandle: HWND;

 

Обратите внимание, что главное окно приложения не является синонимом

окна главной формы. Если проект использует диалоги, созданные при помощи функции Windows API CreateDialog(), а не диалоговые окна из набора VCL Delphi, то понадобится свойство:

propertyDialogHandle: HWnd;

 

Если приложение активно, то свойство Active вернет значение true.

propertyActive: Boolean; // только для чтения








Дата добавления: 2016-03-15; просмотров: 680;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.