Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2008, 19:54   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
Вопрос TrayIcon удалить ИКОНКУ

В том и дело что только иконку. Пишу такой код:
Код:
type
  TNotifyIconData = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallBackMessage: UINT;
    hIcon: HICON;
    szTip: array [0..63] of AnsiChar;
  end;
Создаю две процедуры:
Код:
    procedure CreateTray();
    procedure DeleteTray();
Соответственно их код:
Код:
procedure TMainForm.CreateTray;
begin
  with niData do
    begin
      cbSize:=sizeOf(TNotifyIconData);
      Wnd:=Self.Handle;
      uID:=1;
      uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
      uCallBackMessage:=WM_USER+123;
      hIcon:=Application.Icon.Handle;
      szTip:='Speed';
    end;
   Shell_NotifyIcon(NIM_ADD, @nidata);
end;
Код:
procedure TMainForm.DeleteTray;
begin
  with niData do
    begin
      cbSize:=Sizeof(TNotifyIconData);
      Wnd:=Handle;
      uID:=0;
    end;
  Shell_NotifyIcon(NIM_Delete, @niData);
end;
Также я использую эту процедуру:
Код:
procedure TMainForm.WMICON(var Msg: TMessage);
var
P: TPoint;
begin
 case msg.LParam of
 WM_RBUTTONDOWN:
   begin
     GetCursorPos(p);
     SetForegroundWindow(Application.MainForm.Handle);
     pMenu.Popup(P.X, P.Y);
   end;
 WM_LBUTTONDBLCLK:;
 end;
end;
Как видите у меня есть меню. Вот только сегодня решил сам без этих балующих компонентов сделать Tray вроде всё ясно, но может я ещё что-то не догоняю. Итак... К примеру я нажимую на Button1:
Код:
Createtray();
Hide;
Затем для Button2 след.код:
Код:
Deletetray();
Show;
Deletetray не работает, тоесть иконка остаётся, а при нажатии на иконку также появляется меню. Вопрос наверное уже догадались какой. Как удалить то всё таки полностью твою программу из трея...?
Заранее спасибо за помощь...
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.09.2008, 21:12   #2
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Посмотри, должно быть понятно.
Вложения
Тип файла: rar for_денис.rar (3.3 Кб, 23 просмотров)
NikLik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Извлечь иконку из EXE? Алексей_C Общие вопросы Delphi 22 27.12.2008 23:34
Изменить иконку xakkkkker Общие вопросы Delphi 2 23.08.2008 19:40
TrayIcon => balloon Altera Общие вопросы Delphi 1 07.06.2008 10:30
[РЕШЕНО] Подскажите, где скачать нормальный пакет компонент TrayIcon для Delphi7... Рустам Компоненты Delphi 6 02.02.2008 21:48
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36