Я не понимаю, почему значки на панели инструментов в среде разработки (RAD Studio) больше, чем при фактическом запуске приложения.
Из среды разработки:
С момента запуска приложения (значки стали меньше):
Каждый из значков имеет ширину 22 и высоту 23. Значения ширины и высоты кнопок панели инструментов одинаковы (22x23 соответственно). При изменении масштабирования форм true или false не имеет значения. Среда разработки запускается с параметром «/highdpi:unware».
Любые идеи или другие предложения будут с благодарностью приняты. Спасибо.
Я использую Делфи 12.1. Есть ли работоспособное решение или мы застряли на нем?
Вы всегда можете перейти в «Проект» > «Параметры» > «Приложение» > «Манифест» и установить для параметра «DPI Awareness» значение «Unaware» или какое-либо другое значение (попробуйте каждое из них).
Спасибо. Установка значения «Не знаю» сработала отлично.
Просто имейте в виду, что у людей с экранами HighDPI будут размытые диалоги и графика, поскольку ваше приложение будет отображать с разрешением 96 точек на дюйм только для того, чтобы Windows повысила его масштаб до того, какой параметр DPI выбран для монитора, на котором расположен диалог. Правильный способ решить эту проблему — включить значки в различных разрешениях, чтобы Delphi могла выбрать тот, который соответствует настройке DPI конечного пользователя. Для этого используйте комбинацию TImageCollection + TVirtualImageList, как описано в ответе Торбинса.
Стандартный TImageList не поддерживает масштабирование своих значков в среде HiDPI. Но вы можете заменить его комбинацией TVirtualImageList + TImageCollection. Эти компоненты могут масштабировать свои значки в зависимости от текущего разрешения и даже выбирать из нескольких значков разных размеров.
Я обязательно рассмотрю возможность замены TImageList другими (TVirtualImageList и TImageCollection). Спасибо.
Это связано с масштабированием DPI. Какую версию Delphi вы используете?