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

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

Главная форма не точно отображает иконку программы [Delphi, Windows]


-=Mike=- ©   (2005-11-19 05:48:00) 

Прицепил к программе ресурс с иконокой программы.

В иконке лежат два изображения: 16х16 и 32х32. Но вот главная форма для отображения иконке в заголовке не берет изображение 16х16, а масштабирует изображение 32х32.

Как можно это поправить?


-=Mike=-   (2005-11-24 16:10:00) [1]

И еще в тему:

Q>Не понимаю, почему когда создаю Dialog Based Application, в title bar'е отображается иконка, которая 32х32, а хотелось бы видеть 16х16. Мелочь, а неприятно. Тем более, что в SDI все нормально.

A>Это какой-то глюк в Windows, надо убрать один вызов SetIcon:

SetIcon(m_hIcon, TRUE);         // Set big icon
//SetIcon(m_hIcon, FALSE);        // Set small icon


-=Mike=-   (2005-11-24 15:18:00) [2]

Кстати, попалась тут одна заметка:

 Следует иметь ввиду некоторые нюансы работы с WM_SETICON.
 Если ресурс иконки содержит двойное изображение (большое 32x32 и малое 16x16), то при установке иконки с wParam = ICON_BIG в заголовке диалога будет отрисована малая иконка, а в диалоге переключения по ALT+TAB отрисуется большая.
 Если ресурс иконки содержит только большое изображение, то в заголовке диалога будет отрисована отмасштабированная большая иконка (в диалоге переключения появится она же в полный размер).
 При попытке использовать различные иконки для большого и малого изображений нужно всегда иметь ввиду, что даже в том случае, когда ресурс иконки содержит и малое, и большое изображения, при добавлении ее с wParam = ICON_SMALL в качестве малого изображения будет отрисовано отмасштабированное большое изображение (а не малое, как это можно было бы предположить).
 Хотя такое поведение никак не оговорено в MSDN, тем не менее оно наблюдается на всех Win32-платформах.


fellix   (2005-11-22 18:13:00) [3]

Я верю, но чудес же не бывает. :-) Значит есть какая-то между этими ЕХЕшниками разница. Скорее всего в ресурсах (порядок, "лишние" иконки, идентификаторы и т.п.). На расстоянии мало что добавить к этому могу. Но размер отображаемой иконки определяется системой из указанного выше параметра.


-=Mike=-   (2005-11-22 16:04:00) [4]

Да я ж говорю - настройки у меня абсолютно стандартные.
В обоих проектах я использовал один и тот же файл ресурса с иконкой. Там лежит файл иконки: 1-е изображение 16х16, 2-е изображение 32х32.
Смотрел естественно всякими там Рестораторами, Ресурсхакерами. В файлах нормально лежат нормальные иконки.
Да и смотрю я на это файл в проводнике - он нормально берет иконки из файла. В режиме просмотра Details иконка берется 16х16, в режиме просмотра Icons берется иконка 32х32.


fellix   (2005-11-21 13:05:00) [5]

> -=Mike=-   (21.11.05 11:43) [8]
> Вы несколько не поняли...
Возможно не понял.

> ... для заголовка должно браться изображение 16х16...
Не должно. Определяется системой исходя из значения Display properties -> Appearance [ -> Advanced ] -> Caption Buttons (для Ваших настроек не помню, на экперименты нет времени).

> ...берется! Но в другом, пробном, проекте. ...Вроде все одинаково...
Так сравните ЕХЕшники "ресурс экплорером".


homm   (2005-11-21 12:48:00) [6]


> Вы несколько не поняли.
Да он вообще похоже не из понятливых ;)


-=Mike=-   (2005-11-21 11:43:00) [7]

Вы несколько не поняли. У меня стоят настройки по умолчанию. Размер шрифта - Normal (96 dpi), тема Классическая, без изменений.
Т.е. для заголовка должно браться изображение 16х16. И оно берется! Но в другом, пробном, проекте. Что в основном - никак не пойму! Вроде все одинаково, что касается иконок ничего нигде не менял.


fellix   (2005-11-21 10:17:00) [8]

Поэкспериментируйте с этим значением и увидите, как берется или маленькая иконка, или большая. Кстати, в 2К и в ХР поведение несколько отличается.


-=Mike=-   (2005-11-21 02:29:00) [9]

Вы хотите сказать, что я вручную задрал размеры заголовка в настройках системы?

Это не так.


fellix   (2005-11-20 12:24:00) [10]

Зависит от значения
Display properties -> Appearance [ -> Advanced ] -> Caption Buttons.


-=Mike=-   (2005-11-20 02:42:00) [11]

простите, уточню:
файл иконки один - MainIcon.ico
сделал rc файл с одной строкой - MAINICON ICON "MainIcon.ico"
скомпилированный RES файл прицепил к проекту


-=Mike=-   (2005-11-20 02:32:00) [12]

Я сделал файл иконки, в которой лежат два изображения 16х16 и 32х32, т.е. файл иконки ОДИН.

Подключил его в модуле главной формы: {$R mainicon.RES}

Что странно, сделал пробный пустой проект, также подключил к нему иконку. И там все нормально, иконки отображаются правильно.....

Не пойму никак в чем проблема. Вроде и в том и другом прокете все одинаково насчет иконок..........


SPeller   (2005-11-19 13:18:00) [13]

-=Mike=-   (19.11.05 5:48)
В иконке лежат два изображения: 16х16 и 32х32.

В одной иконке, или у тебя две раздельные иконки? Во втором случае вроде бы берётся перая иконка.


Thaddy   (2005-11-19 09:45:00) [14]

The main icon should contain *all* icons for all sizes. This is not a kol matter.
Try creating it with michelangelo (super icon editor)


Наверх

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