Nedávno šel v konferenci problém ohledně různého DPI (nebo velikosti písma) při navrhování programu a za běhu. Sice jsem přispěl řešením, ale jelikož se jedná o jednoduché řešení, je škoda kdyby zapadlo.
Například následující okno:

A mějme na vývojovém počítači 96DPI. Pokud na testovacím počítači např. nastavíme větší velikost písma (což je celkem častý případ, v našem případě se pak jedná o 144 DPI), tj.

zobrazí se formulář následovně:

Je vidět, že písmo sice odpovídá systému - viz. titulek okna (pro porovnání s ostatními aplikace v systému), ale velikost okna má problém a jsou tam i další problémy.
Pokud ve vlastnostech formuláře nastavíme Scaled = True, AutoSize = False dostaneme následující (pokud tedy používáme správné škálovatelné fontu - truetype atd). Toto podle mne odpovídá tomu, co chce uživatel dosáhnout velkými fonty.

V konferenci následně Lukáš Gebauer nastínil i následující řešení - citace:
Muj figl je jednoduchy, ale funguje spolehlive. Muzes programovat na
malych ci velkych fontech, nevadi to. A uzivatel muze mit take male
ci velke fonty.
Postup:
1. na formularich pouzivat jen skalovatelne fonty (truetype,
opentype)
2. propetry formulare autoscroll a scaled dat na false.
3. do OnCreate formulare pridat radky:
if Screen.PixelsPerInch <> PixelsPerInch then
ScaleBy(Screen.PixelsPerInch, PixelsPerInch);
A je to. Kdo nevidel, neuveri. ;-)
Výsledek:

Toto podle mne ale není úplně korektní řešení, jelikož velikost fontů v aplikaci neodpovídá fontům v systému (titulek x tlačítka x ostatní aplikace), ale má naopak jinou výhodu - tj. že přesně odpovídá velikost aplikace navrhované velikosti - což třeba v případě práce s grafikou může být výhodné.
V podstatě ale které řešení použijete je jen na Vás.