Показать сообщение отдельно
  #2  
Старый 17.03.2012, 00:47
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Код:
const
  WM_NOTIFYTRAYICON = WM_USER + 1;

procedure Ic(n: Integer; xTitle: string);
var
  tray: TNotifyIconData;
  TrayIcon: TIcon;
begin
  with tray do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := Form1.Handle;
    uID := 1;
    uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallBackMessage := WM_NOTIFYTRAYICON;
    hIcon := TrayIcon.Handle;
    lstrcpy(szTip, PChar(xTitle));
  end;
  case n of
    1: Shell_NotifyIcon(NIM_ADD, @tray);
    2: Shell_NotifyIcon(NIM_DELETE, @tray);
    3: Shell_NotifyIcon(NIM_MODIFY, @tray);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Ic(1, 'Text 1'); //добавляем иконку
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Ic(3, 'New Text'); //модифицируем иконку
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Ic(2, ''); //удаляем иконку
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием