Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

Как вставить иконку в трей (туда где часики) ?   Найти похожие ветки 

 
Кот Бегемот ©   (2005-04-14 10:12) [0]

Столкнулся со странной особенностью работы Shell_NotifyIcon.
При параметрах FTrayIcon.hIcon := Application.Icon.Handle; и наличии в Application.Icon иконки с несколькими изображениями в трей попадает всегда stretch-еное изображение 32х32 в максимальном цвете для текущей системы - а не более подходящее 16х16 как ожидалось.

Проверял так:
Создал .ico-файл с картинками 16х16, 24х24, 32х32 и с 2-х, 4-х, 8-и, 16-и битным цветом для каждого размера.
Каждый вариант изображения был пронумерован.
Использовал для проверки TRxTrayIcon.

А теперь вопрос - можно ли сделать чтобы в трее отображалось именно 16х16 при нескольких изображениях в одном .ico ?


 
XP   (2005-04-14 10:26) [1]

Не использовать Application.Icon.Handle.
Грузить иконку напрямую LoadIcon, LoadResourceName и пр.


 
Кот Бегемот ©   (2005-04-14 10:39) [2]

Сам проверял-то перед тем как советовать ???


 
Digitman ©   (2005-04-14 11:04) [3]


> Кот Бегемот ©   (14.04.05 10:39) [2]
> Сам проверял-то перед тем как советовать ?


а что тебя смущает ?

никто не заставляет тебя в кач-ве иконки подставлять Application.Icon.Handle или иконки форм

грузи нужные (в нужном формате) иконки вызовами LoadIcon, LoadResourceName и подставляй их !


 
Чапаев ©   (2005-04-14 11:18) [4]

Используй не LoadIcon(), a LoadImage(), предварительно прочитав хелп. Если всё же хочецца LoadIcon(), то придётся обратить внимание на порядок иконок...


 
GuAV ©   (2005-04-14 11:32) [5]

procedure SetIcon(hWnd: HWND; Create: Boolean);
const Msg: array[Boolean] of DWORD = (NIM_DELETE, NIM_ADD);
var Icon: TNotifyIconData;
begin
 if Create then
   begin
     Icon.hIcon := LoadImage(hInstance, "MAINICON",
       IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

     Icon.uCallbackMessage := WM_MYTRAY;
     Icon.uFlags := NIF_MESSAGE or NIF_ICON;
   end
 else Icon.uFlags := 0;
 Icon.uID := 0;
 Icon.cbSize := SizeOf(Icon);
 Icon.Wnd := hWnd;
 Shell_NotifyIcon(Msg[Create], @Icon);
end;


 
Кот Бегемот ©   (2005-04-14 11:35) [6]

Спасибо Чапаеву © (14.04.05 11:18)[4] за дельный совет !!!
Помогло именно LoadImage(HInstance,"PROBE123",IMAGE_ICON, 16, 16, 0);
К сожалению я не нашел где можно указывать порядок иконок при загрузке через LoadIcon(). А загружаемое изображение оказывется зависит от текущей битности цвета на десктопе....

2Digitman ©   (14.04.05 11:04) [3]
Уважаемый Сергей.
Прошу Вас в дальнейшем обращать внимание на вопрос, а не на комментарии - ведь вопрос то был "можно ли сделать..."


 
Кот Бегемот ©   (2005-04-14 11:39) [7]

2GuAV ©   (14.04.05 11:32) [5]
Спасибо :) я слишком долго писал ответ :)))


 
Digitman ©   (2005-04-14 11:39) [8]


> Кот Бегемот ©   (14.04.05 11:35) [6]


> вопрос то был "можно ли сделать..."


да конечно можно !
тут и сомнений нет никаких ..


 
Кот Бегемот ©   (2005-04-14 11:44) [9]

Ну вот :) что и ожидалось услышать ....

Спасибо всем ответившим - тему можно закрывать.


 
VMcL ©   (2005-04-14 12:09) [10]

>>Кот Бегемот ©   (14.04.05 11:35) [6]

Вопроса в заглавном посте два:
1. "Как вставить иконку в трей (туда где часики) ?"
2. "можно ли сделать чтобы в трее отображалось именно 16х16 при нескольких изображениях в одном .ico ?"


 
Чапаев ©   (2005-04-14 13:40) [11]

> К сожалению я не нашел где можно указывать порядок иконок при загрузке через LoadIcon().
Порядок задаётся при создании иконок. ;-) Насколько я помню, "иконкой по умолчанию" является тот DDB, который идёт последним.



Страницы: 1 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
14-1116250544
kai
2005-05-16 17:35
2005.06.06
как отправить/принять факс по интернету?


1-1116718562
grol
2005-05-22 03:36
2005.06.06
Ввод чисел перед переменными в выражении в строке Edit.


6-1111410897
redlord
2005-03-21 16:14
2005.06.06
работа в блокированном режиме


14-1116500202
Eraser
2005-05-19 14:56
2005.06.06
Компоненты и алгоритмы для шифрования


11-1098741069
dan
2004-10-26 01:51
2005.06.06
edit box without frame