My screen is a 96ppi screen. That is its physical characteristic having 1366 x 768 pixels.
@Steve_Cornford
Hi Steve,
Some confusion here. The PPI / DPI setting is a conversion factor for displaying font sizes, it is not a fixed physical characteristic of the monitor screen, which is in cells per inch.
My monitor measures 23.4" inches across and the native resolution is 2560 x 1440.
This means the physical cells per inch is 2560/23.4 = 109.4 cells per inch. This can't be changed by software.
The Windows settings for font conversion are:
100% = 96 ppi
125% = 120 ppi
150% = 144 ppi
Most programs (but not Templot) set fonts in Point sizes. A Point (pt) is 1/72nd of an inch, from traditional letterpress printing.
The ppi setting is used to convert Points to dot sizes on the screen.
So if you set text at 8pt and use
96 ppi, on the screen it will be:
8 x 96 / 72 = 10.67 dots. You can have only whole dots, so this is rounded to
11 dots.
In Delphi/Lazarus that is called the Font.
Height and is shown negative to differentiate it from the Font.
Size in pts.
On my screen the physical size of 11 dots is 11 / 109.4 cells per inch = 0.1005" (= 2.55mm).
If you set text at 8pt and use
120 ppi, on the screen it will be:
8 x 120 / 72 = 13.33 dots, rounded to
13 dots.
On my screen the physical size of 13 dots is 13 / 109.4 cells per inch = 0.1188" (= 3.02mm).
I have always used 120 ppi for everything -- and what Microsoft thinks about it doesn't cross my mind.
The default font height on most Templot forms is -13 dots, which means a button needs to be 20 dots height minimum to look right, and preferably 22 or 24 dots if there is room for it. Windows would mess with this on some screens and make it fuzzy. To prevent this we have Scaled=False on all forms, Scaled=False on the Application, and the program Manifest set to DPI-Aware=True. The actual on-screen sizes at run time are then controlled by the
program size slider, and everything is kept crisp on all screens.
cheers,
Martin.