In my experience, I've noticed that there are 3 types of applications:
ones that get along with Windows DPI setting and get scaled correctly.
ones that always keep everything at the same pixel position and don't scale anything (this is what I want).
ones that can't cope with non-standard DPI settings, so their controls are all over the place. Such programs sometimes recommend the user to change their DPI settings.
I already know that there are SetProcessDPIAwareness()
and SetProcessDPIAware()
functions in the Win32 API, and Scaled
and PixelsPerInch
properties in the TForm
class.
I've experimented with these things, searched the web, but I haven't found or developed any solid approach.