Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi 11 High DPI Scaling Probleme (https://www.delphipraxis.net/208804-delphi-11-high-dpi-scaling-probleme.html)

kaju74 15. Sep 2021 13:14

Delphi 11 High DPI Scaling Probleme
 
Hallo,

ich habe seit gestern Delphi 11 am Start und habe hier einige Probleme mit dem neuen High DPI Scaling auf einem 4K-Monitor. Frisch installiert, ist das Designen einer Form nicht möglich, da diese ja auf einem 4K-Monitor winzig angezeigt wird. Nun kann man ja in den Einstellungen eine andere DPI-Zahl für den Form-Designer einstellen - soweit so gut. Aber scheint es generell ein Problem mit dem Scaling zu geben:

1) Neue VCL Anwendung erstellen
2) Auf der Form z.B. eine TEdit-Box oben platzieren (Anchors = akLeft, akTop, akRight)
3) Ein TButton unten rechts platzieren (Anchors = akRight, akBottom)

Wenn man nun mehrfach hintereinander zwischen Form und Form-Text (ALT+F12) hin und herschaltet, wandern die Controls immer weiter nach links und man zerschießt sich die gesamte Form.

Ist das bei Euch auch so?

LG,
kaju

Uwe Raabe 15. Sep 2021 13:49

AW: Delphi 11 High DPI Scaling Probleme
 
Kann ich hier nicht nachvollziehen.

Bernhard Geyer 15. Sep 2021 14:12

AW: Delphi 11 High DPI Scaling Probleme
 
Hast du mehr als einen Bildschirm?
Wenn ja: Ist der 4k-Monitor der Primäre bzw. wo neben dem Primären liegt er?

U.u. sind nicht alle Anordungskonstellationen mit 4k-Monitoren in der IDE/VCL berücksichtigt

jaenicke 15. Sep 2021 14:13

AW: Delphi 11 High DPI Scaling Probleme
 
Welche Auflösung und welche Skalierung sind denn in Windows eingestellt? (Bei mehreren Monitoren: Ist das für alle gleich eingestellt?)

kaju74 15. Sep 2021 14:21

AW: Delphi 11 High DPI Scaling Probleme
 
Hi,

ich habe hier zwei Monitore am Start:

1) Primäre Monitor: 3840 x 2160 (175% Scaling)
2) Sekundärer Monitor: 1680 x 1050 (100% Scaling)

Die Windows-Anzeige ist "erweitert". Der primäre Monitor steht dabei direkt vor mir, der sekundäre links daneben (falls das eine Rolle spielt). Egal, ob ich die IDE mit HighDPI Support aufrufe oder ohne, und ob ich in den Einstellungen beim Form-Designer die Skalierung ändere, die Form wird zerschossen. Ganz schlimm wird es, wenn ich in den Einstellungen die DPI-Einstellung ändere und dann mal zwischen Text-DFM und Anzeige wechsel -> dann ist die Form auf einen Schlag nicht mehr zu gebrauchen. Die Pixel wandern dabei (je nach Einstellung) bei jedem Wechsel zwischen 2 und 10 Pixel nach links (sieht man dann ja auch im DFM-Text).

Hier mal ein Video zu Verdeutlichung:

http://kaju74.de/delphi11/scaling.mp4

LG, kaju

jaenicke 15. Sep 2021 20:08

AW: Delphi 11 High DPI Scaling Probleme
 
Egal was ich am Monitor oder in Delphi mache, ich bekomme den Fehler nicht reproduziert.

Kannst du es vielleicht mal ohne den zweiten Monitor testen? Damit würden schon einmal ein paar Kombinationsmöglichkeiten für die Einstellungen wegfallen.

Michael II 15. Sep 2021 21:12

AW: Delphi 11 High DPI Scaling Probleme
 
Da ist definitiv wieder was schief (war doch vor einigen Versionen schon mal sehr ähnlich).

Ich habe mit einem Monitor (Laptop) mit Auflösung 1920x1080 unter Windows zum Testen Skalierung 175% eingestellt.

Ich habe deine Anleitung befolgt (Searchbox und Button mit Anchors). Zusätzlich habe ich aber beim Form Scaled=FALSE gesetzt.

Wenn ich nun in die Design Ansicht wechsle und mehrmals hintereinander Alt+F12 drücke, dann wird mein Formular immer kleiner.


Es funktioniert auch ohne die Searchbox und den Button und mit der Windows Standard-Skalierung 125% nicht wie es sollte: Es genügt, wenn ich eine neue VCL App öffne, für Form Scaled=false setze und danach Alt+F12 mehrmals drücke. Das Fenster wird immer kleiner und kleiner.

Uwe Raabe 15. Sep 2021 21:16

AW: Delphi 11 High DPI Scaling Probleme
 
Daraus sollte sich doch ein plausibler QP-Eintrag erstellen lassen.

TurboMagic 15. Sep 2021 21:22

AW: Delphi 11 High DPI Scaling Probleme
 
Und wichtig, da Video vorhanden: als Bug in QP melden!

jaenicke 15. Sep 2021 21:35

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Michael II (Beitrag 1494935)
Es genügt, wenn ich eine neue VCL App öffne, beim Form Scaled=false setze und danach Alt+F12 mehrmals drücke, dann wird mein Form immer kleiner und kleiner.

Das kann ich bestätigen. Wenn mich nicht alles täuscht, wird der Fehler im ScaleForCurrentDPI verursacht, das im TCustomForm.Loaded aufgerufen wird. Wenn ich das patche, sieht es besser aus, aber dafür funktioniert die Skalierung nicht mehr richtig.

Ich habe leider auch nicht genug Zeit um das richtig zu analysieren.

Ja, High-DPI ist ein leidiges Thema. Wie man es macht, in irgendeiner Konstellation gibt es doch noch einen Fehler...

Michael II 16. Sep 2021 14:38

AW: Delphi 11 High DPI Scaling Probleme
 
Leider fehlt mir dieses Mal auch die Zeit dem nachzugehen.

[QP und Beta bin ich irgendwann ausgestiegen, weil mehrere eindeutige und im Code nachweisbare Fehler einfach als "nicht reproduzierbar" abgetan wurden.]

Besten Dank fürs Bestätigen des Bugs.

Uwe Raabe 16. Sep 2021 15:15

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Michael II (Beitrag 1494992)
QP und Beta bin ich irgendwann ausgestiegen, weil mehrere eindeutige und im Code nachweisbare Fehler einfach als "nicht reproduzierbar" abgetan wurden.

Wie soll ich das jetzt verstehen? Ist der Fehler für dich nicht wichtig genug dass er behoben wird oder soll sich jemand anderes die Mühe machen einen QP-Report zu erstellen? Ohne einen solchen wird das nämlich eher schlecht mit dem Beheben, denn Scaled = False in TForm ist nun mal nicht Standard.

Und überhaupt, wenn ein Fehler als nicht reproduzierbar abgetan wurde, dann wahrscheinlich weil er dort eben nicht reproduzierbar war und nicht weil man sich vor der Behebung drücken will. Entweder muss man dann die Schritte nochmal überprüfen oder eventuell seine eigene Umgebung daraufhin abklopfen, ob da was vielleicht nicht so ganz den Default-Einstellungen entspricht und nur eine bestimmte Konstellation den Fehler auslöst. Wenn einem dann selbst schon am Code klar ist, warum das passiert, sollte ein entsprechender Test Case doch mit vertretbarem Aufwand zu erstellen sein.

Ich bin auch bereit mir die betreffenden QP-Einträge mal anzusehen wenn du mir die Nummern nennst. Vielleicht kriegen wir die ja doch noch reproduzierbar.

softtouch 16. Sep 2021 21:14

AW: Delphi 11 High DPI Scaling Probleme
 
Habe das gerade mal ausprobiert, 4K Monitor, 150% scaling. Bestimmt 20 mal Alt-F12 aber nichts hat sich verändert, alles normal bei mir.

Michael II 17. Sep 2021 10:01

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von softtouch (Beitrag 1495018)
Habe das gerade mal ausprobiert, 4K Monitor, 150% scaling. Bestimmt 20 mal Alt-F12 aber nichts hat sich verändert, alles normal bei mir.


Hast du die Form-Eigenschaft Scaled auf FALSE gesetzt?

Hier wird das Fenster jedes Mal um den in Windows 10 (10.0.19044.1237) eingestellten Skalierungsfaktor verkleinert.

Zum Beispiel: Windows Skalierung 125%
Vorher: Fenster Clientheight=1000
Nach Alt+F12 Alt+F12
Nachher: Clientheight=1000/125%=800
Erneut Alt+F12 Alt+F12
Nachher2: Clientheight=800/125%=640

Ähnlich für andere Skalierungen.

Uwe Raabe 17. Sep 2021 10:08

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Michael II (Beitrag 1495040)
Hast du die Form-Eigenschaft Scaled auf FALSE gesetzt?

Welchen Grund hat diese Einstellung?

Michael II 17. Sep 2021 14:03

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1495041)
Zitat:

Zitat von Michael II (Beitrag 1495040)
Hast du die Form-Eigenschaft Scaled auf FALSE gesetzt?

Welchen Grund hat diese Einstellung?

Absolut keinen Grund. Ich hatte #1 gelesen, wollte helfen und habe erst dann danach gesucht, wieso das in #1 beschriebene Fehlverhalten auftreten könnte.

Für mich ist dieser kleine D11 Programmfehler absolut kein Problem.
ProgrammiererInnen, welche bei einer Form "grundlos" Scaled=False gesetzt haben, sollten in Delphi 11 einfach Alt+F12 nicht ausführen und gut ist. (Oder Scaled neu auf True setzen und daran denken, dass...)

Eventuell hängt dieses Problem mit #1 zusammen - vielleicht auch nicht.

Falls du findest, dass die Property Scaled ohne Grund noch in D11 eingebaut ist, könnte man doch für den Wegfall in D12 voten? Dann wäre das Problem vom Tisch.

Wie man's korrigieren kann, weiss ich immer noch nicht. jaenicke und du wissen da sicher viel mehr.

Uwe Raabe 17. Sep 2021 15:25

AW: Delphi 11 High DPI Scaling Probleme
 
Okay, ich dachte es gäbe einen triftigen Grund den ich mir nur nicht vorstellen kann.

Rolf Frei 17. Sep 2021 16:40

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Michael II (Beitrag 1495055)
Zitat:

Zitat von Uwe Raabe (Beitrag 1495041)
Zitat:

Zitat von Michael II (Beitrag 1495040)
Hast du die Form-Eigenschaft Scaled auf FALSE gesetzt?

Welchen Grund hat diese Einstellung?

Absolut keinen Grund. Ich hatte #1 gelesen, wollte helfen und habe erst dann danach gesucht, wieso das in #1 beschriebene Fehlverhalten auftreten könnte.

Für mich ist dieser kleine D11 Programmfehler absolut kein Problem.
ProgrammiererInnen, welche bei einer Form "grundlos" Scaled=False gesetzt haben, sollten in Delphi 11 einfach Alt+F12 nicht ausführen und gut ist. (Oder Scaled neu auf True setzen und daran denken, dass...)

Eventuell hängt dieses Problem mit #1 zusammen - vielleicht auch nicht.

Falls du findest, dass die Property Scaled ohne Grund noch in D11 eingebaut ist, könnte man doch für den Wegfall in D12 voten? Dann wäre das Problem vom Tisch.

Wie man's korrigieren kann, weiss ich immer noch nicht. jaenicke und du wissen da sicher viel mehr.

Wenn irgendwer Scaled auf False setzt, hat das seinen Grund!!! Ich habe selber Formen in meinen Project die auf False gesetzt sind, weil es da Controls und andere Sachen drin hat (z.B. Bitmaps), die nicht richtig scalieren. Für mich wäre das also ein riesengrosser Showstopperbug!

Passieren diese Scalingprobleme eigentlich nur, wenn man die IDE im HighDPI Modus laufen lässt oder passiert das nun auch wenn man wie bisher in 96 DPI entickelt? Ich warte dann besser solange das nicht gefixt ist mit der Installaiton von D11. Wenn da meine kopmplexen Formulare ruinerit werden, nur weil da irgendwass falsch läuft, wäre das eine Katastrophe für mich.

Uwe Raabe 17. Sep 2021 16:45

AW: Delphi 11 High DPI Scaling Probleme
 
Wenn du die IDE als DPI Unaware startest, dann verhält sie sich im Wesentlichen wie Delphi 10.4.2

Uwe Raabe 17. Sep 2021 16:51

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Rolf Frei (Beitrag 1495061)
Wenn irgendwer Scaled auf False setzt, hat das seinen Grund!!! Ich habe selber Formen in meinen Project die auf False gesetzt sind, weil es da Controls und andere Sachen drin hat (z.B. Bitmaps), die nicht richtig scalieren.

Das Scaled = False hatte früher seine Bedeutung als PixelsPerInch noch anders behandelt wurde. Mittlerweile ist das seit ein paar Delphi Versionen überflüssig wenn du deine Applikation als DPI unaware laufen lässt. Eventuelle Fehler im High DPI Designer der IDE sind aber halt nicht auszuschließen. Aber im Falle eines Falles hat man dann ja immer noch seine Versionsverwaltung.

UntoterGeist 17. Sep 2021 17:11

AW: Delphi 11 High DPI Scaling Probleme
 
Gilt das mit den DPI Problemen die sich scheinbar häufen eigentlich auch für FMX Anwendungen? Wobei ich bei FMX Anwendungen auch mit Delphi 10.beliebigeZahl schon Probleme hab, wenn der DPI Support nicht deaktiviert ist. Zumindest was die kompilierten Anwendungen betrifft. Das liegt aber wohl daran, das sich die FMX Skalierung mit der DPI Skalierung beißt. Ich dachte das Scaled = TRUE auch nur für die VCL Lösung der dynamischen Skalierung benötigt wird und nichts mit den DPI von den Windowseinstellungen zu tun hat. Kenne mich aber mit VCL auch nicht wirklich aus.

TurboMagic 17. Sep 2021 18:29

AW: Delphi 11 High DPI Scaling Probleme
 
In 11.0 würde FMX unter Windows überarbeitet und nutzt jetzt auch so statt Pixel, also wie die mobilen Plattformen auch.

Keine Ahnung, ob das ähnliche Probleme verursacht wie die VCL sie gerade hat.

Rolf Frei 20. Sep 2021 12:44

AW: Delphi 11 High DPI Scaling Probleme
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1495065)
Zitat:

Zitat von Rolf Frei (Beitrag 1495061)
Wenn irgendwer Scaled auf False setzt, hat das seinen Grund!!! Ich habe selber Formen in meinen Project die auf False gesetzt sind, weil es da Controls und andere Sachen drin hat (z.B. Bitmaps), die nicht richtig scalieren.

Das Scaled = False hatte früher seine Bedeutung als PixelsPerInch noch anders behandelt wurde. Mittlerweile ist das seit ein paar Delphi Versionen überflüssig wenn du deine Applikation als DPI unaware laufen lässt. Eventuelle Fehler im High DPI Designer der IDE sind aber halt nicht auszuschließen. Aber im Falle eines Falles hat man dann ja immer noch seine Versionsverwaltung.

Mein Anwendung soll aber nicht als DPI unaware laufen. Der Grossteil ist korrekt scaliert, nur bestimmte Formen sollen nicht skalieren und das funktioniert noch gleich wie früher, zumindest bisher bis 10.3. Wenn Scaled = false ist, werden sie auch nicht scaliert, wie ich es erwarte. Neuere Versionen der IDE habe ich ich bisher nicht getestet und ich hoffe, dass man das in Versionen nach 10.3 nicht auch kaputt gemacht hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz