Недавно добавленные исходники

•  Animation Loaders  775

•  DeLiKaTeS Tetris (Тетрис)  5 750

•  TDictionary Custom Sort  7 711

•  Fast Watermark Sources  7 392

•  3D Designer  10 608

•  Sik Screen Capture  7 919

•  Patch Maker  8 147

•  Айболит (remote control)  8 196

•  ListBox Drag & Drop  6 997

•  Доска для игры Реверси  100 319

•  Графические эффекты  8 275

•  Рисование по маске  7 650

•  Перетаскивание изображений  6 255

•  Canvas Drawing  6 627

•  Рисование Луны  6 549

•  Поворот изображения  5 713

•  Рисование стержней  4 646

•  Paint on Shape  3 349

•  Генератор кроссвордов  4 320

•  Головоломка Paletto  3 475

•  Теорема Монжа об окружностях  4 295

•  Пазл Numbrix  2 781

•  Заборы и коммивояжеры  3 701

•  Игра HIP  2 496

•  Игра Go (Го)  2 486

•  Симулятор лифта  2 884

•  Программа укладки плитки  2 317

•  Генератор лабиринта  3 043

•  Проверка числового ввода  2 547

•  HEX View  2 950

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

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



Для добавления иконки нужно сперва подключить модуль 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. В качестве параметров функции нужно указать две вещи.

  1. Сначала сообщение, которое мы посылаем, определяющее необходимое действие над иконкой. Этот параметр может принимать одно из следующих значений:
    • NIM_ADD - добавляет иконку в область TrayBar'a
    • NIM_DELETE - соответственно, удаляет
    • NIM_MODIFY - если задать это значение, можно будет модифицировать иконку
  2. В качестве второго параметра передаётся структура NOTIFYICONDATA, которая содержит сведения об иконке. Эта структура обладает следующими полями:
    • cbSize - это размер структуры в байтах
    • hWnd - дескриптор окна, которое будет получать сообщения ассоциированные с иконкой на TrayBar'e
    • uID - идентификатор иконки на TrayBar'e
    • uFlags - массив флагов, значение этого поля может комбинироваться из следующих констант:
      • NIF_ICON - элемент структуры hIcon будет задействован
      • NIF_MESSAGE - элемент структуры uCallbackMessage будет задействован
      • NIF_TIP - - элемент структуры szTip будет задействован
    • uCallbackMessage - идентификатор сообщения. Система использует этот идентификатор, когда сообщение посылается окну, обозначенному в поле hWnd. Это сообщение посылается, когда происходит событие мыши над областью иконки.
    • hIcon - дескриптор задаваемой иконки
    • szTip - всплывающая подсказка, появляющаяся над областью иконки







Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте