Привет! В данной статье я опишу, то как средствами Delphi создать иконку приложения в Tray Bar. В своё время я сам искал способ, как это сделать, но найденные в интернете материалы не всегда понятны начинающим, особенно, если программист не достаточно знаком с функциями WinAPI. Поэтому, я объясню всё наиболее подробно.
Для работы с Tray Bar есть только одна функция, описанная в юните ShellAPI.pas:
Shell_NotifyIcon(dwMessage:
Cardinal; IpData: PNotifyIconDataA).
Как видим, функция требует два параметра.
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array [0..63] of AnsiChar.
cbSize – Размер записи. Его надо определить, как SizeOf(NOTIFYICONDATA).
Wnd – Дескриптор окна, которое будет получать сообщения от иконки в Tray Bar.
uID – Идентификатор вашей иконки (её номер).
uFlags – Свойства иконки. Может принимать значение NIF_ICON, NIF_MESSAGE, NIF_TIP (что-то одно: только видна иконка без всплывающей подсказки, обработка сообщений или одна подсказка). А также может быть и (NIF_ICON or NIF_MESSAGE or NIF_TIP), т.е. полноценная Tray иконка, поддерживающая сообщения системы, видимую иконку и подсказку по наведению курсора на неё.
uCallbackMessage – Сообщение, адресованное окну, выбранному в свойстве Wnd.
hIcon – Дескриптор иконки, которую надо изобразить в Tray Bar-е.
szTipe – Текст всплывающей подсказке у иконки.
Указав, таким образом, действие над иконкой (переменная dwMessage) и, заполнив свойства иконки в переменной IpData вы можете манипулировать своей иконкой в системном трее.
Это основа работы с Tray Bar. Ниже приведён пример элементарной программы, помещающей свою иконку в Tray Bar.