![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Предисловие:
Приложение многооконное (не MDI). Каждая дочерняя форма (немодальная) отображается с кнопкой на таскбаре Windows. Кому интересно - это делается так:
Соответственно к каждой такой форме можно достучаться и через Alt+Tab. Проблема 1. Иконки окон в винде (те что в заголовке окна) - размера 16x16. Иконки в окне Alt+Tab - размера 32x32. 2. Можно в свойство TForm.Icon пихануть иконку 16x16. Тогда: - в заголовке окна красивая 16x16 иконка - в окне Alt+Tab - некрасиво растянутая она же до 32x32. 3. Можно в свойство TForm.Icon пихануть иконку 32x32. Тогда: - в окне Alt+Tab - красивая 32x32 икнока. - в заголовке окна - некрасиво сжатая она же до 16x16. Попытка решения Создаю многостраничную иконку, которая содержит 2 иконки: 16x16 и 32x32. Подсовываю ее в TForm.Icon Результат - как с иконкой 16x16. Кстати В MS Office Outlook 2003 это работает стабильно. Т.е. все окна используют таскбар, в заголовке отображают маленькую иконку, а в Alt+Tab - 32x32 разукрашку. Посоветуйте Посоветуйте плиз, как запихать в форму многостраничную икону и чтоб она стабильно отдавала в заголовок 16х16, а в Alt+Tab - 32х32. . |
|||
|
||||
drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Не совсем понятно, что значит многостраничная (в моем понимании это иконка для анимации)
А так делаеш все правильно, свозможно формат иконок не соответствует требованиям винды. Вот она и подбирает ту которая лучше всего подходит. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
многостраничная - значит в ней несколько форматов
32x32 (32 бита) 24x24 (32 бита) 16x16 (32 бита) 32x32 (256 цветов) 24x24 (256 цветов) 16x16 (256 цветов) и т.д. вобщем от 16x16 (16 цветов) до 256х256 (32 бита) -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Думаю это вилы :( . На самом деле иконка в файле и памяти это разные вещи. В файле она может быть многостраничной, но при загрузке в память TIcon конвертирует одну из иконок файла в стандартный для винды формат. Короче попросту говоря из нее создаются 2 битмапа совместимых с устройством вывода, для современных видюх и стандартных настроек это обычно размер 32х32 32 бита на цвет. Делается это для оптимизации вывода графики. Если явно указать что нужна 16 х 16 то создаст 16 х 16 32 бита на цвет, но только одну. Виндозный объект HICOH чьей надстройкой является TIcon это только одна иконка. MS Office Outlook 2003 по всей видимости создает 2е иконки, одну назначает главному окну, другую заголовку, другого решения я не вижу. Это сообщение отредактировал(а) Alexeis - 18.5.2007, 18:20 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Если б было так просто... Да. Я могу подсунуть приложению одну икону, а любому окну другую - это не поможет. А в Оффисе каждый объект (напр., Контакт) создает отдельное окно (и это именно дочернее окно приложения), имеющее: 1. Кнопку на таскбаре винды 2. 16х16 (НЕуменшенную 32х32) в заголовке икону 3. 32х32 (НЕувеличенную 16х16) икону в окне Alt+Tab. ... и это НЕ главное окно, которое действительно в заголовке может иметь свою 16х16 икону, а в Alt+Tab - отображает 32х32 икноу приложения. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Я уж не ожидал, что проблема решится. Ан нет!
Спасибо Alexeis, что обратился к хелпу и нашел этот чудный пост (см.выше). Благодаря этому посту и небольшому изучению исходников вот результат (для интересующихся):
Насколько красиво и просто. Спасибо всем, кто поучаствовал в обсуждении и особенно - Alexeis. . |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |