Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
Delphi 11 Alexandria
|
AW: Bildschirm Auflösung
31. Okt 2019, 07:36
Hallo Zodi
ich weiss nicht, mit welcher Delphi Version du arbeitest.
In den neueren kannst du unter Projekt > Optionen > Manifest > DPI Unterstützung einstellen, wie sich dein Programm und Windows punkto der unter Windows eingestellten Skalierung verhalten sollen.
(In älteren Delphi Versionen musst du die Manifest Datei anpassen.)
Ein Beispiel. Dein Programmfenster habe eine Grösse von 600x400.
Wenn du "Keine" DPI Unterstützung auswählst und du unter Windows eine Skalierung von 125% eingestellt hast, dann wird Windows dein Fenster um diesen Faktor vergrössert (und dadurch etwas unscharf) darstellen. Auf dem Bildschirm wird dein Fenster also 600x1.25=750 breit und 400x1.25=500 Monitorpixel hoch angezeigt. Wenn du aber in deinem Programm Breite und Höhe abfragst, werden immer noch 600 bzw. 400 zurückgegeben. Hätte eines deiner Fenster eine Grösse von 3072x1728, dann würde es auf dem Monitor 3072x1.25 breit und 1728x1.25 hoch dargestellt (3840x2160); wenn du Breite und Höhe in deinem Programm abfragst, dann werden 3072 bzw. 1728 zurück gegeben. Genau gleich verhält es sich mit den Screen Werten.
Wenn du unter DPI Unterstützung hingegen zum Beispiel "über Monitor v2" wählst, dann bist du verantwortlich fürs Skalieren des Fensters. Windows wird dein Fenster nicht skalieren. Dein 600x400 Fenster wird 600x400 Monitorpixel gross dargestellt, wenn du keine Korrektur vornimmst. Wenn du jetzt die Screen Werte abfragst, wirst du 3840x2160 zurück erhalten.
Michael Gasser
Geändert von Michael II (31. Okt 2019 um 10:50 Uhr)
|