Як помістити іконку в трей за допомогою delphi

Помістити іконку програми в трей засобами Delphi не така вже й складне завдання. Вона стане в нагоді для виведення меню, а також для приховування додатки, коли залишається одна тільки іконка, за допомогою якої Ви можете управляти додатком.

Це було б корисно для програм, які працюють тривалий час без будь-якої взаємодії з користувачем (фонових завдань, які зазвичай запущені на комп'ютері протягом всього дня).

Розміщуємо іконку в трей

До слова сказати, створити додаток, що запускається з іконкою в системному треї досить легко - тільки одна функція API Shell_NotifyIcon необхідна для виконання цього завдання.

Функція оголошена в модулі ShellApi і їй передається два параметри. Перший параметр - прапор, який вказує на те, додається іконка в даний момент або віддаляється, а другий параметр являє собою покажчик на структуру TNotifyIconData. в якій зберігається інформація про іконці (дескриптор іконки для відображення, текст підказки при наведенні покажчика миші на іконку, дескриптор вікна, яке буде отримувати повідомлення від іконки і тип повідомлення, яке буде надіслано вікна).

Для початку додайте ShellApi в розділ uses Вашої форми, потім додайте ці рядки:

Потім в методі OnCreate потрібно форматувати структуру даних TrayIconData і виклик функції Shell_NotifyIcon:

Параметр Wnd з TrayIconData вказує на вікно, яке буде отримувати повідомлення від іконки. HIcon вказує на значок, який буде відображатися в треї. У нашому випадку - значок програми. szTip містить текст підказки, яке буде відображатися при наведенні на іконку курсору миші (може містити до 64 символів). Параметр uFlags встановлений для обробки повідомлень додатка.

Якщо Ви запустіть Ваш проект зараз, Ви побачите значок Вашого застосування в треї, але нічого не відбувається при натисканні на ньому мишкою.

При закритті програми нам потрібно видалити значок з трея:

І, нарешті, щоб наша ікона реагувала на події миші, а також з'являлося спливаюче меню потрібно створити процедуру обробки повідомлень, а також додати компонент TPopupMenu на форму і створити в ньому пункти меню.

Ну от і все! Швидко і просто: є підказка, є спливаюче меню, а також іконка знаходиться в треї.