Как свернуть приложение Delphi в Tray
Одним из критериев гибкой функциональности программы является возможность взаимодействия с системным Tray. Программная реализация работы с треем сложна и сводится, как правило, к следующему алгоритму:
1) главная форма программы скрывается, в системном трее появляется иконка.
2) приложение отслеживает щелчок правой и левой кнопки мыши и реагирует на них либо появлением всплывающего меню, либо какими-то другими действиями.
В этой статье будет рассмотрен компонент для работы с системным треем RXTrayIcon, входящий в библиотеку RX Library. Установив эту библиотеку, у вас появятся три панели инструментов RX( рис.1 ) .
На панели " RX Tools" найдите компонент RXTrayIcon , специально разработанный для операций с треем.
рис.1
Инспектор объектов компонента выглядит вот так:
рис.2
Устанавливая логическое свойство Active в True , мы показываем в трее иконку, загруженную посредством диалога в свойстве Icon . Для того, чтобы на этапе проектирования можно было наблюдать результат работы компонента, свойство ShowDesign нужно установить в True . Компонент может иметь свое всплывающее меню, которое можно указать в свойстве PopupMenu .
Чтобы описать, как реализуется описанный выше алгоритм, нужно создать в Delphi новый проект, установить на форму компонент RXTrayIcon, кнопку Button и всплывающее меню TPopup. Кнопкой мы будем сворачивать главную форму приложения в трей, при этом в трее будет появляться иконка. При щелчке правой кнопки мыши будет появляться всплывающее меню, состоящее из одного пункта "Восстановить". При выборе этого пункта меню главная форма приложения снова будет видимой, при этом иконка из трея исчезнет. Форма, после установки на нее компонентов, будет выглядеть следующим образом:
рис.3
В меню создадим один пункт с именем " Back ". Код, в виде обработчиков 1) кнопки "Свернуть" и
2) пункта меню, будет
выглядеть так:
procedure TForm1.Button1Click(Sender: TObject);
begin
RxTrayIcon1.Active:=True;
Form1.Hide;
end;
procedure TForm1.BackClick(Sender: TObject);
begin
Form1.Show;
RxTrayIcon1.Active:=False;
end;
|
в обработчике кнопки "Свернуть" первая строчка выводит в трее иконку, вторая строчка скрывает главную форму приложения. Во втором обработчике первой строчкой сначала появляется главная форма приложения, второй - из трее скрывается иконка.
Как сделать анимированную иконку в Tray для приложения Delphi
Для того чтобы сделать анимированную иконку, нужно воспользоваться свойством компонента Animated , установив его в True. Анимация получается в результате чередования иконок, загруженных в дилоговом окне свойства Icons , с интервалом времени, заданном в свойстве Interval ( в миллисекундах ) .
Берем любую иконку. С помощью любого графического редактора, например, ArtIcons 3.26, делаем на основе ее несколько кадров, сохраняя каждую как отдельную иконку. Затем загружаем их в диалог свойства Icons :
рис.4
устанавливаем в свойстве Interval промежуток времени, через который будет появляться каждая последующая иконка в нашей последовательности. И получим простейшую анимацию из наших иконок в трее.
|