5

In general, the multiple-monitor support in Delphi 10.3 works smoothly. However, I have a problem with the size of hints on multiple monitors. To reproduce the problem you need a multiple monitor system, preferably with identical monitors.

  1. Create a new VCL application. Add a label, set ShowHint to True and add some hint text.
  2. Set the display of the primary monitor to 100% and the secondary monitor to 200%.
  3. Start your application. It will appear on the primary monitor with 100%, the size of the hint text is identical to the label text as it should be, see image.

[A label and a hint on the primary monitor with 100%.1

  1. Now move your application to the secondary monitor with 200%. The form and the label will be enlarged by a factor of two. However, the size of the hint remains as before, i.e. the hint is now too small.

A label and a hint on the secondary monitor with 200%. The primary monitor is 100%.

  1. Close your application and change the display of the primary monitor to 200% and the secondary monitor to 100%.

  2. Start your application. It will appear on the primary monitor, the size of the hint text is identical to the label text and everything is larger as it should be with 200%, see image.

A label and a hint on the primary monitor with 200%.

  1. Now move your application to the secondary monitor with 100%. The form and the label will become smaller by a factor of two. However, the size of the hint remains as before, i.e. the hint is now too large.

A label and a hint on the secondary monitor with 100%. The primary monitor is 200%.

This seems to be a bug in the VCL of Delphi 10.3. Does this problem still appear in Delphi 10.4 Sydney?

Shaun Roselt
  • 1,650
  • 5
  • 18
  • 44
Matej
  • 442
  • 3
  • 9
  • 1
    Looks like https://quality.embarcadero.com/browse/RSP-24541 and that one is marked as fixed in 10.4 Sydney. – Uwe Raabe Jul 31 '20 at 10:02

1 Answers1

1

This was an issue in earlier versions of Delphi.

It's been fixed in Delphi 10.4 and newer versions. Embarcadero has done extensive work in terms of scaling and HighDPI for the latest Delphi 11 and newer versions.


Just for some added information regarding scaling and HighDPI support. Make sure your project always have Per Monitor v2 set for DPI Awareness: DPI Awareness This can be set in the Application Manifest options: Delphi Application Manifest options

Per Monitor v2 DPI Awareness is a feature introduced in Windows 10 Creators Update (version 1703) that allows an application to be aware of the DPI scaling of each individual monitor it is displayed on. This is in contrast to the previous version of DPI Awareness, which was referred to as "System DPI Awareness", where an application would only be aware of a single DPI scaling across all displays in the system.

With Per Monitor v2 DPI Awareness, an application can adjust its layout and rendering based on the DPI scaling of each monitor it is displayed on, resulting in a more consistent and optimal user experience. For example, an application may display larger UI elements on a high-DPI monitor while keeping them smaller on a lower-DPI monitor.

Shaun Roselt
  • 1,650
  • 5
  • 18
  • 44