Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Работа с TaskBar


unit TaskBar;

interface

uses Windows, ShellAPI;

const
  // Дублируем описания из ShellAPI, чтобы не писать его в Uses
  // везде, где мы используем этот модуль
  NIF_TIP = ShellAPI.NIF_TIP;
  NIF_ICON = ShellAPI.NIF_ICON;

function TaskBarAddIcon(
  hWindow: THandle; // окно, создавшее значок
  ID: Cardinal; // идентификатор значка
  ICON: hIcon; // иконка
  CallbackMessage: Cardinal; // сообщение, которое будет посылаться окну
  Tip: PChar // ToolTip
  ): Boolean;

function TaskBarModifyIcon(
  hWindow: THandle;
  ID: Cardinal;
  Flags: Cardinal;
  ICON: hIcon;
  Tip: PChar): Boolean;

function TaskBarDeleteIcon(
  hWindow: THandle;
  ID: Integer): Boolean;

implementation

function TaskBarAddIcon(
  hWindow: THandle;
  ID: Cardinal;
  ICON: hIcon;
  CallbackMessage: Cardinal;
  Tip: PChar): 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;
    lstrcpyn(szTip, Tip, SizeOf(szTip));
  end;
  Result := Shell_NotifyIcon(NIM_ADD, @NID);
end;

function TaskBarModifyIcon(
  hWindow: THandle;
  ID: Cardinal;
  Flags: Cardinal;
  ICON: hIcon;
  Tip: PChar): Boolean;
var
  NID: TNotifyIconData;
begin
  FillChar(NID, SizeOf(TNotifyIconData), 0);
  with NID do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := hWindow;
    uID := ID;
    uFlags := Flags;
    hIcon := Icon;
    lstrcpyn(szTip, Tip, SizeOf(szTip));
  end;
  Result := Shell_NotifyIcon(NIM_MODIFY, @NID);
end;

function TaskBarDeleteIcon(
  hWindow: THandle;
  ID: Integer): Boolean;
var
  NID: TNotifyIconData;
begin
  FillChar(NID, SizeOf(TNotifyIconData), 0);
  with NID do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := hWindow;
    uID := ID;
  end;
  Result := Shell_NotifyIcon(NIM_DELETE, @NID);
end;

end.

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay