![]() |
AW: Control-Skalierung unter Windows 10
Zitat:
Den aktuellen DPI-Wert für ein Form bekommt man mit der protected function GetParentCurrentDpi. Der Parent eines Forms ist in der Regel nil, was dann den Wert des Forms liefert. |
AW: Control-Skalierung unter Windows 10
Ich habe festgestellt, dass wenn ich eine Rio Anwendung mit High DPI erstelle und (Monitorv2) und ich die Anwendung im 4 K Monitor starte, wo alles super aussieht, und dann auf ein Full HD bildschirm verschiebe, sich nichts tut. Das Fenster bleibt dann riesig, die Controls auch. Eigentlich sollte sich das Fenster dann doch automatisch verkleiner.
Setzte ich DPI auf "keiner", dann verhält sich das Formular wie erwartet. Woran liegt das? |
AW: Control-Skalierung unter Windows 10
Welche Windows Version?
Welche Skalierung ist auf den einzelnen Monitoren eingestellt? Welche Skalierung hat der primäre Monitor? |
AW: Control-Skalierung unter Windows 10
Windows 10 1809
Primärmonitor 4K 200% Sekundärmonitor Full HD 100% |
AW: Control-Skalierung unter Windows 10
Wenn beide Monitore dieselbe Größe haben, dann sollte das Form auch auf beiden Monitoren gleich groß dargestellt werden. Auf dem 4k Monitor hat es halt nur doppelt so viele Pixel in X und Y.
Kannst du ein Beispielprojekt anhängen und genau beschreiben, was du erwartest und was passiert. |
AW: Control-Skalierung unter Windows 10
Ich habe eine Form, wo der Anwender Optionen einstellen kann. Naturgemäß gibt es da zahlreiche GroupBoxen mit CheckBoxes, OptionButtons, Edits und so weiter; dazu werden die auch noch je nach Situation dynamisch angepasst, ein- und ausgeblendet, wodurch sich die Höhe der GroupBoxes und auch mal die des PageControls ändert. Ich habe natürlich alle absoluten Pixelangaben entfernt und mir eine Funktion geschrieben, die mir das alles einrichtet. Jetzt klappt alles unter allen Auflösungen und Skalierungen, aber es war eine völlig abartige Arbeit. Das kann es auf Dauer nicht sein.
|
AW: Control-Skalierung unter Windows 10
Dann solltest du nicht mit Left, Top, Width und Height arbeiten, sondern mit Align und AlignWithMargins. Sobald du dynamisch Positionen oder Größen setzt, musst du wohl oder übel den aktuellen DPI-Wert berücksichtigen. Wie sollte das auch sonst gehen?
|
AW: Control-Skalierung unter Windows 10
Liste der Anhänge anzeigen (Anzahl: 2)
Naja, nehmen wir mal das angehängte Beispiel. Unter Windows 10 und einem 4K-Monitor bei einer Skalierung von 175% sah mein schönes Fenster plötzlich so aus (Bild 1). Vorher (und jetzt wieder) sah es ordentlich aus (Bild 2). In aller Regel ist es so, dass Breite keine Problem ist, Höhe wohl.
Die Lösung, die ich gefunden habe, ist garantiert keine, die den Embarcadero-Schönheitspreis gewinnen wird. Meine Prozedur nimmt das unterste Control, das in der GroupBox ist, und bestimmt danach die Höhe der GroupBox, also Top + Height + RandUnten. Dadurch wird es egal, was Windows mit der Skalierung treibt, ich orientiere mich an den tatsächlichen Verhältnissen, ohne genau zu wissen, ob und wieviel Windows da skaliert. In der Praxis funktioniert's. |
AW: Control-Skalierung unter Windows 10
Zitat:
Habe hier auch schon den Fall gehabt das selbst der Windows Explorer nicht mehr richtig beim verschieben vom 2k (100%) auf den 4k (200%) Monitor richtig neu gezeichnet wurde. |
AW: Control-Skalierung unter Windows 10
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz