![]() |
Umgang HiDPI System und Delphi Applikationen
Ich würde mal gerne ein Thema dazu aufmachen, das es ein momentan sehr präsentes Thema ist und eigentlich alle Delphi-Entwickler betrifft, besonders die mit älteren Delphi-Versionen und nativen Win32-Applikationen arbeiten.
Seit Windows 8 (was zu Glück ja nicht den Verbreitungsgrad hatte) installiert sich ja Windows bei Bildschirmauflösungen von FullHD und größer automatische mit erhöhter DPI Zahl. Den meisten Usern ist das wahrscheinlich gar nicht bewusst, aber bei bestimmten Geräteklassen z.B. das DPI Monster Lenovo Yoga 900 mit 3.200 x 1.800 auf 13 Zoll wohl unumgänglich um etwas lesen zu können. Der Trend zu immer hochauflösenden Screens und Windows 10 macht das "Problem" immer aktueller. Für unsere bestehenden Applikation (wie meine D7 Projekte) gibt es ja eigentlich 2 Möglichkeiten: a) Man schaltet das Scaling aus (per Manifest, Ressource, oder Scale Eigenschaft). Ergebnis: Die Anwendung ist pixelgenau 1:1 dargestellt (abgesehen von Dingen wie der Titelzeile) aber halt auf HiDPI teilweise sehr klein und auf so etwas wie dem Yoga unbedienbar. sieh auch hier: ![]() b) Man lässt das Scaling aussen vor. Ergebnis: Man erhält eine Anwendung die unscharf auf HiDPI-System dargestellt wird, aber lesbar gross ist, allerdings gerade beim Bitmapscaling ist es wirklich hässlich Beides nicht wirklich toll. Diese Idee hier war ja auch nicht schlecht: ![]() ist aber nicht auf D7 portierbar, das es kein ScaleX und ScaleY dort gibt und zudem das Bitmapproblem weiter bestehen würde. Das ist jetzt MEIN Status Quo. Die Frage ist wie geht ihr mit der Thematik um??? Bin auf Eure Antworten gespannt!! |
AW: Umgang HiDPI System und Delphi Applikationen
Noch nicht gelesen, aber mit dem nächsten großen Update wird sich noch einmal (anscheinend zum letzten mal?) an der Skalierungsgeschichte etwas ändern:
![]() Zitat:
|
AW: Umgang HiDPI System und Delphi Applikationen
Mit Delphi7 wird das Problem wohl nicht so einfach lösbar sein. Für Wincontrols könnte man die Skalierung u.U. per WinAPI durchführen. Aber für sonstige Komponenten, welche sich selbst Zeichen ist ohne große Änderungen an deren Quellcode wohl nichst zu machen.
Am Besten auf eine Version umsteigen, welche die Funktionalität besitzt bzw. der WorkAround funktioniert. |
AW: Umgang HiDPI System und Delphi Applikationen
Zitat:
|
AW: Umgang HiDPI System und Delphi Applikationen
|
AW: Umgang HiDPI System und Delphi Applikationen
Es ist wohl noch etwas hakelig aber soll mit DX insgesamt funktionieren. Vergleiche dazu zB den G+ Thread:
![]() Sherlock |
AW: Umgang HiDPI System und Delphi Applikationen
Zitat:
Auch interessant das M$ sich der Sache annehmen möchte, aber ob das kommt, wann und wie das dann aussieht ist halt schon sehr vage. Zumal die Problematik ja jetzt schon besteht. |
AW: Umgang HiDPI System und Delphi Applikationen
Microsoft wird aber das Problem, dass Delphi7 mit HiDPI nichts anfangen kann auch nicht lösen können/wollen.
Das Abschalten der Skalierung wäre ja eine Lösung die möglich wäre. Diese hat aber den von Dir genannten Nachteil. |
AW: Umgang HiDPI System und Delphi Applikationen
Zitat:
Man muss auch nicht wirklich weit schielen, OSX macht das auf deren HiDPI Systemen perfekt und kaum sichtbar. Aber das hilft uns/mir auch nicht weiter. Ich denke auch das je mehr solche Geräte verkauft werden das Problem akuter wird. Habe in meiner Testmaschine mal probeweise auf 175% gestellt und geschaut was da alles so an Standardsoftware nicht ordentlich skaliert, da sind dann auch Kandidaten wie Firefox oder Chrome dabei. :shock: Ich dachte das jemand eine Lösung kennt die evtl. zu zufriedenstellenderen Ergebnissen wie meine zwei führen. |
AW: Umgang HiDPI System und Delphi Applikationen
Wie gesagt für Delphi7 sehe ich da Probleme. Alle Komponenten, welche nicht auf der WinAPI basieren sonder sich selber Zeichnen bzw. OwnerDraw verwenden.
OSX funktioniert anderst wie Windows, dort ist das Legacy-Problem aber auch nicht so ganz akut. Zudem war Apple auch schon immer restriktiver und hatte noch nie Probleme alte Zöpfe abzuschneiden. Bei MS sehe ich aber im Bezug auf Win10 ähnliche Tendenzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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-2025 by Thomas Breitkreuz