![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Иконка в трее! [D7, WinXP]
(CHALING 32)S K i N E R © (2005-12-16 12:39:00)Моя программа сворачивается в трей и там отображается иконка, а когда Explorer закрывается и снова запускается икона исчезает, как её возобновить?
ss2 (2006-01-04 12:41:00) [1]http://www.delphikingdom.info/asp/answer.asp?IDAnswer=29588
Reset (2006-01-03 21:02:00) [2]В процедуре, которая меняет иконку, такие строки:
MyTrayIcon.hIcon := LoadIcon(hInstance,'MAINICON'); // ну или MAINICON2, принципиальной разницы нет :)
Shell_NotifyIcon(NIM_MODIFY, @MyTrayIcon);
работать-то работает, но наблюдается вот такой вот глюк...
дело в том, что я работаю с balloon'ом и при смене иконки
вот эта самая Shell_NotifyIcon(NIM_MODIFY, @MyTrayIcon);
даёт странный эффект - появляется balloon со "старым"
сообщением и иконка меняется когда захочет, то меняется,
то нет, то замораживается...
убираю строку и всё работает как надо - сообщения
не дублируются, но ... и иконка. разумеется, не меняется :/
аналогичная строка есть и в процедуре показа balloon'а...
где грабли???
Leonid Troyanovsky (2006-01-03 17:32:00) [3]
> Reset (03.01.06 17:10) [6]
> MyTrayIcon := .....
..
> не работает !
Возможно, что проблема именно в .....
--
Regards, LVT.
Reset (2006-01-03 17:10:00) [4]а как мне заменить иконку на другую ?
если
MyTrayIcon := .....не работает !
Shell_NotifyIcon(NIM_MODIFY, @MyTrayIcon);
(CHALING 32)S K i N E R (2005-12-16 17:49:00) [5]Может поставить на обновление иконку!
(CHALING 32)S K i N E R (2005-12-16 17:49:00) [6]Может поставить на обновление иконку!
Rouse_ (2005-12-16 16:40:00) [7]Какую заплатку? У меня это с 98-го Windows работает...
IceBeerg (2005-12-16 16:06:00) [8]2 Rouse_ © (16.12.05 12:50) [1]
Тут еще нужно и заплатку от microsoft поставить, у меня выше указанным Вами способом, в XP, не работет.
Rouse_ (2005-12-16 12:50:00) [9]Подписываешся на сообщение о пересоздании эксплорера вот так:
WM_TASKBARCREATED := RegisterWindowMessage('TaskbarCreated');
и потом жди когда тебе придет: WM_TASKBARCREATED.
Как пришло делай Shell_NotifyIcon(NIM_ADD, @FTrayIcon);