1

I submitted a bug (RSP-30892) to Embarcadero over 1.5 years ago (since Rad Studio 10.4) regarding the following issue:

TCheckBox is scaling when it shouldn't when Windows 10 is set to 150% scaling. The form property is set to Scaled=false, the checkbox still scales 150%. Other controls conform to the form property.

While I have patiently waited for a fix on their end, it has yet to occur. I have tried to override the PixelsPerInch property of the control, but it is ignored.

The big question: Has anyone had any success with a work around, or, a way to override this behavior?

In case it is needed, here is how to reproduce:

  1. Create VCL C++ Forms project.
  2. Set form's "Scaled" property to false.
  3. Add a TCheckBox to the form.
  4. Apply a style to the application in the project options (like Windows 10 Dark).
  5. Under project options->Packages, turn off dynamic RTL in linker. Turn off runtime packages.
  6. Under project options->Application, Manifest, check Enable Runtime Themes and set DPI awareness to Per Monitor v2.
  7. Run on a Windows with scaling set to 150%.

1 Answers1

0

There is another bug report according to which this works as designed: https://quality.embarcadero.com/browse/RSP-24216

Scaled only affects the font size, not the boxes. To fully prevent scaling you must set DPI awareness to "None" in Options -> Application -> Manifest.

You have set the DPI awareness to "Per Monitor v2", which will not work.

When I set DPI awareness to "None", the entire form is scaled. So it seems there is intentionally no way to leave the form small.

VLL
  • 9,634
  • 1
  • 29
  • 54
  • Thanks for the response, however, the "Per Monitor v2" is a setting for the entire app. That setting works in 10.3 with the Form->Scaled set to false. 10.4 on up breaks this. Setting the entire app to "None" doesn't work anymore (as you said), and it is not a solution for apps that have mixed scaled forms. This is definitely a bug, not "as expected" - "closed" result given by Embarcadero in RSP-24216. Its like there is an erroneous GetSystemMetrics call when there shouldn't be? The glyph portions of TCheckBox and TRadio... scale. They shouldn't. Thanks though! I appreciate the attempt! – Anthony West May 25 '22 at 17:22