Содержание материала

 

Вызывается она следующим образом:

 

DZBalloonTrayIcon(Form1.Handle, 1, 10, 'this is the balloon text', 'title', bitWarning);

 

Иконка, должна быть предварительно добавлена с темже дескриптором окна и IconID (в данном примере Form1.Handle и 1).

 

Можете попробовать все три типа иконок внутри всплывающей подсказки.

 

P.S. На всякий случай, ниже представлены функции для добавление/удаления иконок в трее:

Code:

uses SysUtils, Windows, ShellAPI;

 

{добавление иконки}

function DZAddTrayIcon(const Window: HWND; const IconID: Byte; const Icon: HICON; const Hint: String = ''): Boolean;

var

NID : NotifyIconData;

begin

FillChar(NID, SizeOf(NotifyIconData), 0);

with NID do begin

   cbSize := SizeOf(NotifyIconData);

   Wnd := Window;

   uID := IconID;

   if Hint = '' then begin

     uFlags := NIF_ICON;

   end{if} else begin

     uFlags := NIF_ICON or NIF_TIP;

     StrPCopy(szTip, Hint);

   end{else};

   hIcon := Icon;

end{with};

Result := Shell_NotifyIcon(NIM_ADD, @NID);

end;

 

{добавляет иконку с call-back сообщением}

function DZAddTrayIconMsg(const Window: HWND; const IconID: Byte; const Icon: HICON; const Msg: Cardinal; const Hint: String = ''): Boolean;

var

NID : NotifyIconData;

begin

FillChar(NID, SizeOf(NotifyIconData), 0);

with NID do begin

   cbSize := SizeOf(NotifyIconData);

   Wnd := Window;

   uID := IconID;

   if Hint = '' then begin

     uFlags := NIF_ICON or NIF_MESSAGE;

   end{if} else begin

     uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;

     StrPCopy(szTip, Hint);

   end{else};

   uCallbackMessage := Msg;

   hIcon := Icon;

end{with};

Result := Shell_NotifyIcon(NIM_ADD, @NID);

end;

 

{удаляет иконку}

function DZRemoveTrayIcon(const Window: HWND; const IconID: Byte): Boolean;

var

NID : NotifyIconData;

begin

FillChar(NID, SizeOf(NotifyIconData), 0);

with NID do begin

   cbSize := SizeOf(NotifyIconData);

   Wnd := Window;

   uID := IconID;

end{with};

Result := Shell_NotifyIcon(NIM_DELETE, @NID);

end;

  

Несколько заключительных замечаний:

1. Нет необходимости использовать большую структуру NotifyIconData_50 для добавления или удаления иконок, старая добрая структура NotifyIconData прекрасно подойдёт для этого.

2. Для callback сообщения можно использовать WM_APP + что-нибудь.

3. Используя различные IconID, легко можно добавить несколько различных иконок из одного родительского окна и работать с ними по их IconID.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить