Как поместить иконку в трей при помощи Delphi |
![]() |
![]() |
Статьи |
Поместить иконку приложения в трей средствами Delphi не такая уж и сложная задача. Она пригодится для вывода меню, а также для скрытия приложения, когда остается одна только иконка, при помощи которой Вы можете управлять приложением. Посмотрите на панель задач, в ту часть, где находятся часики. Есть там другие иконки? Это место называется Windows System Tray. Хотите поместить значок своего приложения туда же? Тогда эта статья для Вас! Это было бы полезно для программ, которые работают длительное время без какого-либо взаимодействия с пользователем (фоновых задач, которые обычно запущены на компьютере в течение всего дня). Помещаем иконку в трейК слову сказать, создать приложение, которое запускается с иконкой в системном трее довольно легко – только одна функция API Shell_NotifyIcon необходима для выполнения этой задачи. Функция объявлена в модуле ShellApi и ей передается два параметра. Первый параметр – флаг, который указывает на то, добавляется иконка в данный момент или удаляется, а второй параметр представляет собой указатель на структуру TNotifyIconData, в которой хранится информация об иконке (дескриптор иконки для отображения, текст всплывающей подсказки при наведении указателя мыши на иконку, дескриптор окна, которое будет получать сообщения от иконки и тип сообщения, которое будет послано окну). Для начала добавьте ShellApi в раздел uses Вашей формы, затем добавьте эти строки:
Затем в методе OnCreate нужно инициализировать структуру данных TrayIconData и вызов функции Shell_NotifyIcon:
Параметр Wnd из TrayIconData указывает на окно, которое будет получать сообщения от иконки. HIcon указывает на значок, который будет отображаться в трее. В нашем случае – значок приложения. szTip содержит текст всплывающей подсказки, которое будет отображаться при наведении на иконку курсора мыши (может содержать до 64 символов). Параметр uFlags установлен для обработки сообщений приложения. Если Вы запустите Ваш проект сейчас, Вы увидите значок Вашего приложения в трее, но ничего не происходит при нажатии на нем мышкой. При закрытии приложения нам нужно удалить значок из трея:
И, наконец, чтобы наша иконка реагировала на события мыши, а также появлялось всплывающее меню нужно создать процедуру обработки сообщений, а также добавить компонент TPopupMenu на форму и создать в нем пункты меню. Сначала мы объявим процедуру обработки сообщений в области public объявления формы.
И напишем код:
Ну вот и все! Быстро и просто: есть подсказка, есть всплывающее меню, а также иконка находится в трее. |
Комментарии
RSS лента комментариев этой записи