Hallo,
Ich habe 2 Rechner. Der eine hat 192 DPI (200% Win10), der andere 96 DPI (100%, Win7) Bildschirmauflösung/Skalierung.
Hin und wieder programmiere ich bei dem einen Rechner, dann wieder beim anderen Rechner. Mit einer Quellcodeverwaltung checke ich die Änderungen jeweils immer ein. Soweit so gut.
Nun kam es mal vor dass ich unter Win10 (200%) ein Unter Formular geändert hatte, eingecheckt und später habe ich das ganze bei Win7 (100%) einfach nur ausgecheckt und dieses eine Formular nicht mehr geöffnet, sondern die EXE einfach nur übersetzt.
Ergebnis:
Dieses Formular hatte immer noch die Design-Skalierung von 192 DPI und in der Darstellung waren alle Texte halb so groß. Die Steuerelemente waren alle richtig, nur nicht der Text.
Als ich dann das Formular geöffnet, ein TLabel drauf gesetzt und wieder gelöscht hatte, wurde im Formular die Design-Skalierung auf 96DPI gesetzt und nach dem nächsten Übersetzen war dann auch der Text wieder richtig.
Zur Info, keine Frage. Das Problem habe ich für mich gelößt dass ich Formularerweiterungen nur noch mit 100%/96DPI Bildschirmskalierung mache, damit umgehe ich die Probleme.
Diese Skalierungen werden in der Zukunft immer mehr zum Problem, leider, weil die Bildschirm Auflößungen immer höher werden, aber die Schrift man dennoch groß haben möchte, dann muss jeder die DPI-Skalierung hoch setzen.
VG Markus.
Lazarus bei 96 DPI <> 192 DPI
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Lazarus bei 96 DPI <> 192 DPI
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Lazarus bei 96 DPI <> 192 DPI
Leider sind solche Beobachtungen immer sehr schwer nachzuvollziehen, und hier kommt auch noch eine Quellcodeverwaltung ins Spiel, was noch seine eigene Fehlerquellen hat.
Ich habe im beigefügten Projekt versucht, deine Schritte nachzuvollziehen. Erstes Entwicklungssystem ist ein Windows 10 mit 96 ppi; hier habe ich ein Projekt mit zwei Formularen und ein paar Controls zusammengeklickt.
Dann bin ich auf eine VM mit Windows 7 übergewechselt, das auf 144ppi läuft. Ich habe das Projekt kompiliert - sieht normal skaliert aus. Dann habe ich, ohne das 1.Formular zu verändern, im 2. Formular (unit2) weitere Controls hinzugefügt, gespeichert und laufen lassen - alles normal.
Nun bin ich wieder auf das Win10 mit 96ppi zurückgegangen und habe das Projekt geladen und übersetzt, sonst nichts verändert. Auch wieder alles korrekt. (Du kannst die lfm-Dateien in einen Editor laden, und siehst bei Form2 die DesignTimePPI von 144 als Zeichen, dass es unter 144ppi gespeichert wurde; bei Form1 fehlt die Angabe, es wurde unter 96 ppi gespeichert, dem Defaultwert, der nicht ins lfm geschrieben wird).
Tja...
Generell ist es aber eine gute Idee, immer auf derselben Auflösung zu entwickeln. Obwohl ich selbst noch keine Probleme gesehen habe, wenn ich zwischen zwei Auflösungen hinundherwechsle (wobei ich das natürlich kaum mache).
Eins könntest du noch prüfen: Damit der Formularentwurf auch bei höherer Auflösung richtig funktioniert, muss die Option "Force DPI scaling in design time" in den Optionen des Formular-Editors markiert sein.
Ich habe im beigefügten Projekt versucht, deine Schritte nachzuvollziehen. Erstes Entwicklungssystem ist ein Windows 10 mit 96 ppi; hier habe ich ein Projekt mit zwei Formularen und ein paar Controls zusammengeklickt.
Dann bin ich auf eine VM mit Windows 7 übergewechselt, das auf 144ppi läuft. Ich habe das Projekt kompiliert - sieht normal skaliert aus. Dann habe ich, ohne das 1.Formular zu verändern, im 2. Formular (unit2) weitere Controls hinzugefügt, gespeichert und laufen lassen - alles normal.
Nun bin ich wieder auf das Win10 mit 96ppi zurückgegangen und habe das Projekt geladen und übersetzt, sonst nichts verändert. Auch wieder alles korrekt. (Du kannst die lfm-Dateien in einen Editor laden, und siehst bei Form2 die DesignTimePPI von 144 als Zeichen, dass es unter 144ppi gespeichert wurde; bei Form1 fehlt die Angabe, es wurde unter 96 ppi gespeichert, dem Defaultwert, der nicht ins lfm geschrieben wird).
Tja...
Generell ist es aber eine gute Idee, immer auf derselben Auflösung zu entwickeln. Obwohl ich selbst noch keine Probleme gesehen habe, wenn ich zwischen zwei Auflösungen hinundherwechsle (wobei ich das natürlich kaum mache).
Eins könntest du noch prüfen: Damit der Formularentwurf auch bei höherer Auflösung richtig funktioniert, muss die Option "Force DPI scaling in design time" in den Optionen des Formular-Editors markiert sein.
- Dateianhänge
-
lclscaling_forum_2021_08_22.zip
- (2.65 KiB) 50-mal heruntergeladen