Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как поместить иконку в Tray

Delphi , Рабочий стол , TrayBar

Как поместить иконку в Tray

Автор: Nomadic


function TaskBarAddIcon(hWindow: THandle; ID: Cardinal;
  ICON: hicon; CallbackMessage: Cardinal; Tip: string): Boolean;
var
  NID: TNotifyIconData;
begin
  FillChar(NID, SizeOf(TNotifyIconData), 0);
  with NID do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := hWindow;
    uID := ID;
    uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage := CallbackMessage;
    hIcon := Icon;
    if Length(Tip) > 63 then
      SetLength(Tip, 63);
    StrPCopy(szTip, Tip);
  end;
  Result := Shell_NotifyIcon(NIM_ADD, @NID);
end;

Перевод контента на русский язык:

Функция, предоставленная вами, называется TaskBarAddIcon и добавляет иконку в панель задач. Она принимает несколько параметров:

  • hWindow: Обратный handle окна, связанного с иконкой.
  • ID: Уникальный идентификатор иконки.
  • ICON: Иконка, которая будет отображаться в панели задач.
  • CallbackMessage: Сообщение, которое должно быть отправлено, когда пользователь кликнет на иконку.
  • Tip: Строка, которая служит всплывающей подсказкой для иконки.

Функция использует структуру TNotifyIconData для хранения необходимой информации о иконке. Затем она вызывает функцию Windows API Shell_NotifyIcon с флагом NIM_ADD и указателем на эту структуру.

Расшифровка работы функции:

  1. Функция инициализирует структуру TNotifyIconData, называемую NID. Эта структура содержит информацию о иконке,such as its window handle (Wnd), unique identifier (uID), flags (uFlags), callback message (uCallbackMessage) and icon handle (hIcon).
  2. Функция устанавливает размер структуры TNotifyIconData в правильное значение с помощью функции SizeOf.
  3. Затем она устанавливает различные поля в структуре NID, включая:
    • cbSize: Размер структуры.
    • Wnd: Обратный handle окна, связанного с иконкой.
    • uID: Уникальный идентификатор иконки.
    • uFlags: Сет флагов, контролирующих отображение иконки в панели задач. В этом случае он установлен на NIF_MESSAGE или NIF_ICON или NIF_TIP, что означает, что иконка будет отображаться как сообщение или иконка с всплывающей подсказкой.
    • uCallbackMessage: Сообщение, которое должно быть отправлено, когда пользователь кликнет на иконку.
    • hIcon: Обратный handle иконки, которая будет отображаться в панели задач.
  4. Если длина строки Tip превышает 63 символа, функция обрезает строку до максимального разрешенного размера с помощью функции SetLength.
  5. Затем функция копирует содержимое строки Tip в новый буфер строк szTip.
  6. Наконец, функция вызывает функцию Windows API Shell_NotifyIcon с флагом NIM_ADD и указателем на структуру NID. Это добавляет иконку в панель задач.

Чтобы использовать эту функцию в вашем приложении Delphi, вам нужно вызвать ее один раз для каждой иконки, которую вы хотите добавить в панель задач, передавая необходимые параметры. Например:

TaskBarAddIcon(Form1.Handle, 100, Icon1, WM_USER + 1, 'Моя иконка');

Это код добавляет иконку с ID 100 в панель задач, связанную с handle окна Form1, и использует сообщение WM_USER + 1 как callback-сообщение. Всплывающая подсказка для этой иконки установлена на "Моя иконка".

Статья описывает функцию TaskBarAddIcon, которая позволяет добавить иконку в панель задач (Tray) на Windows-системе.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: TrayBar ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 23:58:26/0.0046188831329346/2