Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Иконка в трее! [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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо