Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Иконки в Win10


Тимохов Дима ©   (01.01.18 18:00

Коллеги, здравствуйте!

1. С нового года работаю на Windows10 с экраном FullHD.

2. Обнаружил, что у моего приложения пропала иконка в А) панели задач и Б) в Total Commander.
Но иконка осталась в А) диспетчере задач и Б) проводнике Windows.

3. Попробовал собрать ресурс такого вида:
MAINICON ICON "Icon32.ico"
2 ICON "Icon64.ico"
3 ICON "Icon48.ico"
4 ICON "Icon128.ico"
5 ICON "Icon24.ico"
6 ICON "Icon16.ico"

Здесь:
  а. Каждый файл содержит только одну иконку одного размера.
  б. Каждая иконка - это BPM файл с цветом 24BPP, который был сохранен в ICO программой IrfanView.
  в. Пробовал собирать в разном порядке.

Собирал ресурс и так:
brcc32 -l0409 mainicon.rc
и так:
brcc32 -l0419 mainicon.rc
($0419 - это язык, который я посмотрел Resource Hacker'ом в моем старом EXE'шнике).

Программой Resource Hacker проверил, что в моем новом EXE'шнике новые иконки попадают и попадают с задаваемом языком.

Т.е. ошибка компиляции исключена.

Ничего не выходит! Все равно иконка не видна ни в панели задач ни в Total Commander'е.

4. Вопрос - что я делаю не так и как справиться с проблемой?

Спасибо!

ЗЫ Delphi2007.


Eraser ©   (01.01.18 20:39[1]


> Тимохов Дима ©   (01.01.18 18:00) 

иконкой приложения берется первый ico файл в секции Icon.

открой готовый экзешник Ресторатором (или аналогом) и посмотри по факту, что там с иконками.


> 3. Попробовал собрать ресурс такого вида:
> MAINICON ICON "Icon32.ico"
> 2 ICON "Icon64.ico"
> 3 ICON "Icon48.ico"
> 4 ICON "Icon128.ico"
> 5 ICON "Icon24.ico"
> 6 ICON "Icon16.ico"

лучше взять какой-нибудь спец. софт для иконок и собрать в единый ico файл все распространенные размеры в формате 8 бит и в формате 32 бита.


Тимохов Дима ©   (02.01.18 01:05[2]

Коллеги, прошу прощения за панику!

1. Пропадание иконки в панели задачи было потому, что с годами потерялась строка
Application.MainFormOnTaskbar := True;
, которая должна в обычных оконных приложениях идти после
Application.Initialize();

Раньше (без Application.MainFormOnTaskbar := True) все как-то работало.
Это целое приключение было понять причинно-следственную связь, почему раньше работало. Я так и не понял. Поставил:
Application.MainFormOnTaskbar := True;
и все заработало как надо. На этом решил и закончить.

2. Но вот, почему нет иконки в Total Commander'е. Не ясно. Видимо глюк в самом TC. Забил.

ЗЫ Собираю RES я правильно. Получилось засунуть иконки разных размеров: windows сам определяет, какую иконку брать в конкретном месте.


Dimka Maslov ©   (05.01.18 21:51[3]

Советую
http://www.gdgsoft.com/gconvert/


Тимохов Дима ©   (09.01.18 17:17[4]


> Dimka Maslov ©   (05.01.18 21:51) [3]
> Советую
> http://www.gdgsoft.com/gconvert/

Спасибо, погляжу.

Но! Тут картина очень интересная получается. И дело не в иконках как таковых. Думаю, мой вопрос и возможный ответ на него будут полезны многим.
Итак:
  а. Исходно в моей программе не просто так был Application.MainFormOnTaskbar := False. Это было осознанное действие - чтобы в шапке главного окна был один текст, а когда наводишь мышку на иконку запущенного приложения в таскбаре - другой (более короткий, аббревиатура).
  б. Когда я писал свой вопрос я только что поставил Win10. Т.е. у меня были все красоты настроены по дефолту. В частности, были: Vista Aero effects, live taskbar thumbnails, Dynamic Windows, Windows Flip, and Windows Flip 3D.
  в. И да! Согласно http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Forms_TApplication_MainFormOnTaskBar.html, чтобы это все работало д.б. Application.MainFormOnTaskbar := True.
  г. Не долго думая, я поставил Application.MainFormOnTaskbar := True. Естественно пропал функционал из п. а - всплывающий текст над иконкой в таск баре стал равен заголовку главного окна.
  д. Сейчас при тестировании выяснился такой регресс. Поставил Application.MainFormOnTaskbar := False. И, о чудо - иконка не пропадает, как в исходном вопросе. Почему? Потому, что я отключил все эти Aero effects.

Правильно я понимаю, что если я хочу заголовок главного окна один, а всплывающую подсказку на иконкой приложения в таскбаре другую, то этого нельзя сделать, если Windows настроен с использованием Aero effects?

Если я не прав и можно иметь разный текст даже при Aero effects, то как это сделать?

Спасибо!


Styx ©   (10.01.18 00:34[5]

С иконкой, похоже, проблема у Вас в том, что иконки приложения и главной формы могут быть разными. И после Ваших изменений поменялась только одна... Нужно поменять вторую, и всё будет нормально, имхо.


Тимохов Дима ©   (10.01.18 00:40[6]


> Styx ©   (10.01.18 00:34) [5]
> С иконкой, похоже, проблема у Вас в том, что иконки приложения
> и главной формы могут быть разными.

А как менять иконку главной формы?
Тоже через файл ресурсов?


Styx ©   (10.01.18 00:55[7]

А фиг его знает. Можно попробовать собрать единый ico с разными разрешениями и назначить его форме через gui - должно сработать, наверное. Я никогда не заморачивался :) Собрать можно как-то так: https://stackoverflow.com/questions/4354617/how-to-make-get-a-multi-size-ico-file


Вайрекс   (10.01.18 02:51[8]

Если у вас VCL-проект, то я не понимаю - зачем вам вообще вручную ковыряться в файлах ресурсов и что-то там "собирать"?

Иконка проекта: Меню > Project > Options > Application Icon
Иконка формы: Инспектор объектов > Нужная форма > Icon

З.Ы. Где-то читал что некоторые версии Делфи неадекватно ведут себя когда в иконке есть слои максимального размера (256x256) или недайбох крупнее.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо