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

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

KOLTrayIcon не может корректно отобразить 256-цветную ico в tray


Ал ©   (2003-10-17 11:02:00) 

Захотелось использовать в Tray 256-цветную пиктограмму, но она отображается с цветовыми искажениями, хотя эта же пиктограмма прекрасно отображается и в заголовке окна и в Explorer. Подскажите, в чем дело?


Yury Sidorov   (2003-10-17 22:19:00) [1]

2 mdw: Отображается правильно 256 цветная иконка в трее на Windows 98 и 2000? Слабо верится, т.к. похоже во всех Windows кроме ХР для трея используется 16-цветный imagelist.


mdw   (2003-10-17 14:54:00) [2]

>А насчёт цветовых искажений - это глюк Винды имхо, т.к. в ХР иконки отображаются нормально, а во всех более ранних версиях максимум - 16 цветов
У меня отображаются нормально и под w2000 и под w98.


mike.dld   (2003-10-17 13:04:00) [3]

> BorisMor ©   (17.10.03 12:25) [2]

Юзаю такое и всё работает:


procedure AddTrayIcon(hWindow: THandle; ID: Cardinal; Icon: HICON; CallbackMessage: Cardinal; Tip: string; Cmd: Byte);
var NID : tNotifyIconData;
begin
 FillChar(NID,SizeOf(TNotifyIconData),0);
 with NID do begin
   cbSize := SizeOf(TNotifyIconData);
   Wnd := hWindow;
   uID := ID;
   if Cmd <> NIM_DELETE then begin
     uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
     uCallbackMessage := CallbackMessage;
     hIcon := Icon;
     if Length(Tip) > 63 then SetLength(Tip,63);
     lstrcpyn(szTip,PAnsiChar(Tip),63);
   end;
 end;
 Shell_NotifyIcon(Cmd, @NID);
end;


А насчёт цветовых искажений - это глюк Винды имхо, т.к. в ХР иконки отображаются нормально, а во всех более ранних версиях максимум - 16 цветов


Ал   (2003-10-17 12:43:00) [4]

БорисМору:

TrayIcon.Tooltip := 'Мой хинт';


BorisMor   (2003-10-17 12:25:00) [5]

Подскажите как хинт добаваить к TrayIcon ?
(Что бы при подведение к иконуе появллся)


mdw   (2003-10-17 12:08:00) [6]

У меня тоже самое. Это проблема LoadIcon. Также заметил, что LoadIcon грузит иконку с размерами по умолчанию(32X32), т.е если исходный размер 16X16, то масштабирует в 32X32. А при выводе в TrayIcon происходит обратное масштабирование. Искажения после двойного масштабирования получаются не слабые...

Лечится использованием вместо LoadIcon -
LoadImage(hInstance, 'ZJMCTRLMAINFORM_TRAYICON1', IMAGE_ICON, 16, 16, 0)


Наверх

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