Для добавления иконки нужно сперва подключить модуль ShellAPI в раздел uses, а затем написать следующий код по нажатию на кнопку:
procedure TForm1.Button1Click(Sender: TObject); var no: TNotifyIconData; Hicon1: HIcon; begin //Помещение иконки в Tray Bar HIcon1:=ExtractIcon(Handle,'i:\arw01lt.ico',0); with no do begin cbSize:=Sizeof(TNotifyIconData); Wnd:=Handle; uID:=0; UFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP; SzTip:='Traybar Tip'; HIcon:=HIcon1; //Определяемое пользователем сообщение uCallBackMessage:=WM_USER+0; end; Shell_NotifyIcon(NIM_ADD,@no); end;
Для того, чтобы удалить иконку обработайте нажатие второй кнопки:
procedure TForm1.Button2Click(Sender: TObject); var no: TNotifyIconData; begin //Удаление иконки with no do begin cbSize:=Sizeof(TNotifyIconData); Wnd:=Handle; uID:=0; end; Shell_NotifyIcon(NIM_Delete,@no); end;
Для добавления, удаления или редактирования иконок на TrayBar'e используем специальную API функцию - Shell_NotifyIcon. Как вы уже прочитали для того, чтобы ею воспользоваться, нужно сначала подключить модуль ShellAPI в разделе uses. В качестве параметров функции нужно указать две вещи.
Сначала сообщение, которое мы посылаем, определяющее необходимое действие над иконкой. Этот параметр может принимать одно из следующих значений: NIM_ADD - добавляет иконку в область TrayBar'a NIM_DELETE - соответственно, удаляет NIM_MODIFY - если задать это значение, можно будет модифицировать иконку В качестве второго параметра передаётся структура NOTIFYICONDATA, которая содержит сведения об иконке. Эта структура обладает следующими полями: cbSize - это размер структуры в байтах hWnd - дескриптор окна, которое будет получать сообщения ассоциированные с иконкой на TrayBar'e uID - идентификатор иконки на TrayBar'e uFlags - массив флагов, значение этого поля может комбинироваться из следующих констант: NIF_ICON - элемент структуры hIcon будет задействован NIF_MESSAGE - элемент структуры uCallbackMessage будет задействован NIF_TIP - - элемент структуры szTip будет задействован uCallbackMessage - идентификатор сообщения. Система использует этот идентификатор, когда сообщение посылается окну, обозначенному в поле hWnd. Это сообщение посылается, когда происходит событие мыши над областью иконки. hIcon - дескриптор задаваемой иконки szTip - всплывающая подсказка, появляющаяся над областью иконки