Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #9  
Старый 18.03.2013, 14:52
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Можно сделать намного легче. Прикрепил юнит, пользуйтесь на здоровье.
Код:
uses Tray;
...
var
  TaskBarCreated : Boolean;
const 
  WM_TRAY = WM_USER + 1;
...
function WindowProc(Wnd: HWND; Msg, wParam, lParam: Integer): Integer; stdcall;
begin
  Result := 0;

  case Msg of
    WM_SYSCOMMAND:
    begin
      case LoWord(wParam) of
        // При сворачивании программы
        SC_MINIMIZE:
        begin
          TaskBarCreated := TaskBarAddIcon(Wnd, ID_ICON, WC.hIcon, WM_TRAY, 'Hello!');
          ShowWindow(Wnd, SW_MINIMIZE);
          ShowWindow(Wnd, SW_HIDE);
        end;

        // При восстановлении окна
        SC_RESTORE:
        begin
          if TaskBarCreated then
          begin
            TaskBarDeleteIcon(Wnd, ID_ICON);
            TaskBarCreated := False;
            ShowWindow(Wnd, SW_SHOWNORMAL)
          end
        end;
      end
    end;

    WM_TRAY:
    begin
      case LoWord(lParam) of
        WM_LBUTTONDBLCLK:
        begin
          SetForegroundWindow(Wnd);
          SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, 0);
        end;
      end
    end;

    WM_DESTROY:
    begin
      if TaskBarCreated then
        TaskBarDeleteIcon(Wnd, ID_ICON);
      PostQuitMessage(0);
      Exit
    end
  end;
  Result := DefWindowProc(Wnd, Msg, wParam, lParam)
end;
В юните есть еще функция для вывода хинта с области уведомления.
Вложения
Тип файла: rar Tray.rar (1.2 Кбайт, 76 просмотров)

Последний раз редактировалось M.A.D.M.A.N., 18.03.2013 в 15:46. Причина: Убрал мат
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025