Возможно ли переключение между режимами «High-DPi» и «not High-DPi» во время выполнения? Насколько я понимаю, это определяется в файле манифеста, и вы можете либо иметь приложение High-DPi, либо не приложение High-Dpi, но не можете иметь их обоих. Я прав?Delphi с высокой разрешающей способностью при работе во время работы
ответ
Вы можете указать это во время выполнения, используя функцию SetProcessDpiAwareness
. Или для более старых операционных систем, которые обеспечивают предварительное информирование о DPI для каждого монитора, есть SetProcessDPIAware
.
Прочитайте документацию внимательно. В качестве широкого руководства вам рекомендуется не использовать эти функции и предпочитаете указывать это состояние в манифесте. Было бы необычным приложением действительно, что необходимо было использовать SetProcessDpiAwareness
или SetProcessDPIAware
.
По крайней мере, вам обязательно понадобится позвонить по телефону очень рано в течение всего процесса. Windows не только хочет, чтобы вызов выполнялся раньше, но я ожидаю, что VCL не будет разработан, чтобы хорошо справляться с изменениями политики на полпути в течение всего процесса.