Привет! В данной статье я опишу, то как средствами Delphi создать иконку приложения в Tray Bar. В своё время я сам искал способ, как это сделать, но найденные в интернете материалы не всегда понятны начинающим, особенно, если программист не достаточно знаком с функциями WinAPI. Поэтому, я объясню всё наиболее подробно.

Для работы с Tray Bar есть только одна функция, описанная в юните ShellAPI.pas:

Shell_NotifyIcon(dwMessage: Cardinal; IpData: PNotifyIconDataA).

Как видим, функция требует два параметра.

  1. dwMessage: Переменная может принимать 3 значения: NIM_ADD, NIM_MODIFY, NIM_DELETE. Здесь всё ясно: при dwMessage = NIM_ADD, иконка добавляется в Tray; при dwMessage = NIM_MODIFY иконка обновляется и при dwMessage = NIM_DELETE удаляется из Tray Bar.
  2. IpData: Это ссылка на переменную типа NOTIFYICONDATAA, которая представляет из себя запись из следующих полей:

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.

 

СКАЧАТЬ ПРИМЕР (RAR: 11 Кб).

Используются технологии uCoz