Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - D10 und Windows Auflösung


Seven of Nine - Di 17.01.12 07:38
Titel: D10 und Windows Auflösung
Nachdem mir einer der Anwender eines meiner Applikationen ein Darstellungsproblem gemeldet hatte, habe ich mich mit dem Thema "DPI resolution von Windows" zum erstenmal etwas beschäftigt
(Rechtsklick am Windows Desktop: Anpassen -> Anzeige)
Er hatte die Auflösung statt auf 100% auf 125% stehen. Mein programm hatte einige Elemente falsch dargestellt.

Zum Bugfixing habe ich die DPI Einstellung meines Rechners ebenfalls auf 125% eingestellt und die Routinen zur Skalierung so angepasst das die Darstellung bei beiden DPI resoultions richtig berechnet.
Die Mühe mit dem "dynamischem skalieren" auf verschiedene DPI Einstellungen habe ich mir bisher erspart.
Anschl. habe ich meine eigene Windows DPI Einstellung wieder auf 100% zurückgesetzt.

Mein aktuelles problem: Die Darstellung meiner Anwendung ist jetzt "deutlich größer", auch bei Rückstellung auf die 100% DPI.
Das sieht man bereits im Formular-Designer, aber auch beim starten der Anwendung.

Wo kann ich das für meine Appliktion wieder "Zurückstellen" ?


lG Martin


jaenicke - Di 17.01.12 08:22

Es gibt bei Formularen die Einstellungen PixelsPerInch und Scaled. Du kannst dir ja mal anschauen, ob es daran liegt.

Ansonsten vergleiche doch einfach die .dfm Datei mit der letzten Version in der Versionskontrolle / Sicherungskopie / ... (wie auch immer du deinen Quelltext organisierst). :nixweiss:


Seven of Nine - Di 17.01.12 09:58

Hallo Sebastian
diese beiden Einstellungen des Forms hatte ich natürlich auch in Verdacht
Die stehen aber, nach wie vor, auf 96dpi (Standard) und scaled=true

Das ganze irgendwie aus Backups restaurieren muss ich mir ansehen.
Ich hoffe nicht das mir Delphi rein durch das starten im 125%DPI Modus alle meine Formularelemente auf die 125% vergrößert hat, und ich jetzt alle manuell wieder zurückstellen muss.
Das wäre bei dieser doch recht umfangreichen Applikation ein echtes "Nightmare"

lG M


jaenicke - Di 17.01.12 11:53

user profile iconSeven of Nine hat folgendes geschrieben Zum zitierten Posting springen:
Ich hoffe nicht das mir Delphi rein durch das starten im 125%DPI Modus alle meine Formularelemente auf die 125% vergrößert hat, und ich jetzt alle manuell wieder zurückstellen muss.
Das wäre bei dieser doch recht umfangreichen Applikation ein echtes "Nightmare"
Naja, dafür hat man ja normalerweise immer (zumindest bei größeren Projekten) eine Versionsverwaltung, bei der man beim Einchecken noch einmal direkt die Änderungen sieht. Wenn da dann solche Änderungen auftreten würden, sieht man das sofort und kann das direkt korrigieren... (man hat ja dann den direkten Vergleich zur letzten Version)


Delete - Di 17.01.12 12:41

Form1.Scaled:=false; reicht doch aus, um das "125%-Problem" zu umgehen.
Wenn Du Dich sonst an "Barrierefreiheit" hältst, sprich: KEINE Font-Größen benutzt, die keiner mit Sehschwäche NICHT lesen kann, dann ist das OK!


Seven of Nine - Mi 18.01.12 07:45

Ich habe das Problem inzwischen gelöst :)

Setzen der properties (scaled, PixelsPerInch) zu Laufzeit auf Std-Werte brachte keine verbesserung.
Beim vergleich mit einem alten Updae ist mir dann aufgefallen, das scheinbar Delphis Formular Designer die Formulare 1 / 0,8 skaliert hat. Das ganze übrigens ohne jegliche Sicherheits Abfrage.
Die 1 / 0.8 entsprechen 125% / 100 % und damit auch genau der Änderung der DPI die ich in Windows umgestellt hatte.

Die Delphi IDE hat eine Funktion mit der man die Sklierung eines Projektes ändern kann.
-> Formularansicht anzeigen: "Bearbeiten" -> "Skalierung"
Hier habe ich den Skalierungsfakor 0.8 eingetragen.
Formular wurde wieder 1:1 auf die alte Skalierung zurückgesetzt!

lG Martin