Введение
Практически любое серьезное приложение требует для своей работы настройки каких-либо параметров. Одним из способов является создание меню пункта "Сервис" в самом приложении. В том случае, если параметры приложения изменяются достаточно редко и/или желательно иметь отдельное приложение для управления настройками, хорошим решением является использование панели управления.
Как известно, настройка параметров Windows производится с помощью панели управления. Данная панель представляет собой окно, содержащее апплеты (значки). Каждый из апплетов представляет собой специальное приложение, осуществляющее настройку частей операционной системы или прикладных приложений. Апплеты хранятся в папке Windows/System в файлах с расширением cpl.
Создать апплеты панели управления можно было и в более ранних, чем 5 версиях Delphi. Однако это было достаточно сложно и неудобно. В состав Delphi 5 был введен специальный Project Wizard и компоненты, делающие процесс создания апплета панели управления простым и удобным для программиста.
Создание апплета
Создание апплета панели управления начинается с вызова диалога создания нового объекта. Итак, выберем пункт меню "File/New" и появившемся диалоге на закладке "New" выберем значок "Control Panel Application" (рис. 1.).
После нажатия кнопки "ОК" диалога будет создан новый проект апплета. Присмотримся более внимательно к проекту, выбрав пункт меню "Project/Veiw Source":
library Project1;// Ха, да это же dll
uses
CtlPanel,
Unit1 in 'Unit1.pas' {AppletModule1: TAppletModule};
exports CPlApplet; // Точка входа в апплет
{$R *.RES}
{$E cpl} // Присвоить файлу расширение cpl после компиляции
begin
Application.Initialize;
Application.CreateForm(TAppletModule1, AppletModule1); // Создание модуля
Application.Run;
end.
Из данного исходника видно, что:
1. Апплеты представляют собой dll написанные по специальным правилам.
2. Функиональность апплета реализуется в классе TАppletModule.
TАppletModule - это наследник TDataModule, предназначенный для управления работой апплета. Один проект может содержать несколько апплетов ( иконок на панели).
Чтобы добавить новый апплет в проект необходимо выбрать пункт меню "File/New" с закладки "New" диалога значок "Control Panel Module".
Для настройки нашего апплета можно поменять с помощью инспектора объектов свойства Caption (заголовок апплета - строка под его иконкой) и AppletIcon (иконка). Установим св-во Caption равным "Мой апплет", а иконку из дополнительных файлов Delphi. В TАppletModule может содержать различные невизуальные компоненты, однако чаще всего требуется чтобы при двойном щелчке мышью на значке апплета на экране появлялись формы с элементами настройки. При двойном щелчке мышью генерируется событие OnActivate компонента TАppletModule, а при закрытии апплета - OnStop. Реализуем вышеописанное.
Добавим новую форму к проекту (Project/New/Form или через иконку на панели Delphi).Обратите внимание, что при этом в файл проекта, код которого приведен выше добавится строка:
Application.CreateForm(Tform1, Form1);
Т.е по умолчанию экземляр формы создается автоматически. Убрав эту строчку можно динамически создавать форму динамически в нужный момент времени (не забудьте затем уничтоженить созданный экземпляр). На форме можно размещать визуальные компоненты и писать код для настройки параметров ваших приложений. Теперь в обработчике события OnActivate компонента TАppletModule пишем:
Form1.ShowModal;
Не забудьте при этом указать, что в модуле компонента АppletModule используется модуль созданной формы.
Сохраняем и компилируем проект.
Все, поздравляю, вы создали апплет панели управления.
Инсталляция апплета
Скопируйте файл с расширением cpl из папки проекта в Windows\System (где лежат и остальные cpl). Откройте панель управления, оопс, Вы должны увидеть среди прочих иконку Вашего апплета (рис. 2.)
Заключение
Данная заметка, конечно же, не претендует на полноту освещения темы. В качестве еще одного примера апплета можно использовать проект из примеров Delphi 5 (/DEMOS/CPL/DATE/).
Всячески приветствуются исправления, дополнения, пожелания. Связаться с автором можно по e-mail mgoblin@mail.ru
Спасибо, желаю Вам успехов, Mike Goblin