Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi-Roadmap: Unterstützung von 4K-Monitoren (https://www.delphipraxis.net/190714-delphi-roadmap-unterstuetzung-von-4k-monitoren.html)

Delphi-Laie 29. Okt 2016 20:28

Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Hallo Delphiexperten!

In der Internetenzyklopädie Nr. 1 steht zu Delphi in der Roadmap an erster Stelle: "Unterstützung von 4K-Monitoren".

Aus dem Verweis Nr. 14 bzw. 4., der zu Brian Alexakis' Blog führt, wurde ich auch nicht schlauer. Dort erscheint die Jahreszahl 2015, aktuell wirkt das nicht.

Deshalb meine Fragen: Weiß jemand näheres, was damit gemeint ist? Vielleicht liest Herr Eissing meine Frage und kann sich dazu näher äußern, wäre nett. Oder ist dieser Plan inzwischen beerdigt / eingestampft worden?

Ich kann mir unter dieser Unterstützung (in welcher Hinsicht?) überhaupt nichts vorstellen: Man kann doch jetzt schon Formulare von mit Delphi erstellten Programmen auf 4-K-Auflösungen strecken / "zoomen" (das ist auch schon mit Delphi-2-Compilaten möglich, mit weniger, also Delphi 1, versuche ich es nicht, da ich kein Vista 64 Bit habe, auf dem 16-Bit-Programme noch laufen könnten); vermutlich und hoffentlich beherrschen auch heutige Compilate sogar die 5-K-Auflösung.

himitsu 29. Okt 2016 22:33

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es geht um das Verhalten, wie Windows das HighDPI steuert.

Delphi unterstützt "nativ" die Aufnahme der DPIAware-Kennung im WindowsManifest und es wurde vermutlich auch bissl was an der "Zoom"-Funktion der VCL rumgebastelt.
https://community.embarcadero.com/in...rt-4k-displays

Es geht also nicht wirklich um 4K, sondern um "hochauflösend" mit mehr DPI.
Wenn die Anwendung nicht als HighDPI-fähig gekennzeichnet ist, dann tut windows so, als wäre der 4k-Monitor nur FullHD.
Windows zoomt dann und deine Anwendung kann die zusätzlichen Pixel nicht nutzen, da seine "virtuelle" Auflösung geringer ist, als die Reale.
https://community.embarcadero.com/in...rt-4k-displays
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
Sieh dir das Bild genauer an, vorallem was die Anwendung selber auf ihrer Form für Zahlen ausgegeben hat.

Delphi-Laie 29. Okt 2016 22:46

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Besten Dank, himitsu!

jaenicke 30. Okt 2016 09:07

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Dazu muss man auch wissen, dass sich unter Windows diesbezüglich extrem viel geändert hat seit der Jahrtausendwende. Delphiversionen bis Delphi 7 stammen aus einer Zeit, in der es keine Skalierungstechniken unter Windows gab.
  • Bei Windows XP kam dann die Möglichkeit zumindest die Schriftgrößen automatisch zu skalieren. Allerdings passten die Texte daraufhin oft nicht mehr in die vorgesehenen Anzeigeflächen, weil der Rest der Anwendung nicht skaliert wurde.
  • Mit Windows Vista kam daher folgerichtig die Möglichkeit die Anwendung insgesamt zu skalieren. Dabei wurde aber lediglich das fertig gezeichnete Fenster als Bitmap skaliert. Und es gab auch nur bestimmte Skalierungsschritte (100%, 125%, ...). Wenn die Pixeldichte nicht sonderlich hoch ist, wie zu der Zeit üblich, sehen diese skalierten Oberflächen allerdings nicht so schön aus. (So wie eine hochskalierte Bitmap eben aussieht.)
    Deshalb wurde dies standardmäßig deaktiviert und musste in der Anwendung aktiviert werden.
  • Mit Windows 7 konnte man die reine Schriftartskalierung dann auch quasi stufenlos machen.
  • Erst mit Windows 8 kam dann die monitorabhängige Skalierung, die allerdings von Windows automatisch vorgenommen wurde.
  • Bei Windows 8.1 wurde dann die Umschaltung zur XP-Skalierungsmethode entfernt. Außerdem ist die Skalierung in alten Anwendungen nun anders als seit der Einführung in Vista automatisch aktiv. Vermutlich weil heute Monitore typischerweise eine relativ hohe Pixeldichte haben und das daher bei den meisten Nutzern nicht mehr so schlecht aussieht.
  • Und seit Windows 10 kann man endlich auch manuell pro Monitor die Skalierung einstellen.
Ich hoffe ich habe nichts Wichtiges vergessen.

Seit Windows 10 und Delphi 10 Seattle funktioniert high-DPI wirklich sehr gut. Auch bei unterschiedlicher Pixeldichte und unterschiedlich eingestellter Skalierung pro Monitor wird klaglos beim Schieben eines Fensters von einem zum anderen Monitor skaliert.

Es gibt immer noch Kleinigkeiten, die noch gefixt werden müssten, sowohl in Windows als auch in Delphi, wobei manche davon als As-Designed gelten...
  • Wenn man einen Monitor ausschaltet, klinkt Windows diesen auch aus, so dass alle Fenster auf die anderen Monitore geschoben werden. Dadurch verschieben sich allerdings auch die Monitornummern und Fensterkoordinaten, so dass gespeicherte Fensterpositionen nicht so wirklich gut funktionieren.
    (Sidebars auf den falschen Monitoren, Fenster zudem plötzlich mitten auf dem Bildschirm, ...)
  • Es passiert, dass wie bei der Felddefinition eines Datasets in Delphi das Fenster außerhalb des Bildschirmbereichs angezeigt wird. Das passiert auch bei der Suche manchmal.
    Da helfen dann Tools wie der Window Detective, der auch zum Debuggen sehr hilfreich ist (Stichwort Windows Message Tracing), die die Fensterposition setzen können.
  • Combobox Dropdowns sind in Delphi manchmal falsch skaliert, wenn man Delphi selbst auf einem Monitor mit einer Skalierung aktiv hat, eines der Fenster aber auf einem anderen mit einer anderen Skalierung.
Insgesamt funktioniert Windows 10 mit Delphi 10.1 Berlin auf der Kombination mit 27" 4k (120% Skalierung) und zweimal 24" FullHD (100% Skalierung) aber wirklich sehr gut, so dass ich mit den kleinen Problemen gut leben kann. Und wenn man sich anschaut, dass quasi in jeder Windowsversion und vielen Delphiversionen in den letzten Jahren Verbesserungen kamen, bin ich gespannt auf die nächsten Jahre. ;-)

zeras 30. Okt 2016 09:55

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Hallo,

ich denke, mein Problem passt auch zu diesem Thema.
Ich habe ein Programm unter D2009 entwickelt. Nun läuft es auf den ersten Rechnern unter Windows 10 und es sieht nur hochskaliert aus. Jedenfalls sehr unscharf. Unter Windows 7 sah es noch recht gut aus.
Ich habe in den Eigenschaften des Programms unter Kompatibilität die Funktion "Skalierung bei hohen DPI-Wert deaktivieren" gefunden. Aber dann wird das Programm dann nur sehr klein angezeigt.

Hier meine Fragen:
1.) Muss ich mein Programm unter Seattle kompileren und dann ist alles gut?
2.) Kann ich das Programm unter D2009 lassen und andere Einstellungen unter Win 10 ändern?

Delphi-Laie 30. Okt 2016 10:20

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Auch Dir, Sebastian, herzlichen Dank! Ihr Delphiexperten seid einfach spitze!

zeras, kompetent helfen kann ich Dir leider nicht, aber so, wie es Sebastian Jänicke schreibt, sollte Dein Problem mit ziemlicher Wahrscheinlichkeit behoben sein. Warum zögerst Du, es zu probieren - ist der Änderungsaufwand recht hoch?

zeras 30. Okt 2016 10:39

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1352249)
Warum zögerst Du, es zu probieren - ist der Änderungsaufwand recht hoch?

Ja, im Moment zögere ich noch.
Das Programm wird produktiv in unserer Firma eingesetzt und da es sehr viele unterschiedliche Funktonalitäten besitzt, die nicht immer benötigt werden, kann es sein, dass es sehr lange dauert, bis alle Tests durch sind.
Am Anfang war es ein relativ übersichtliches Programm, was die Funktionalität betrifft. Über die Jahre kamen immer mehr und mehr Funktionen dazu, die dann einzeln getestet wurden. Nun müsste ich alles neu testen.
Deshalb habe ich es noch nicht in Angriff genommen.
Und da das Programm zwar tagtäglich benutzt wird, aber keiner etwas bezahlt hat, ist diese Hemmschwelle auch noch da.

Aber vielleicht mache ich mal einen Basistest, wo nur die Formulare angezeigt werden und die Funktionalität noch nicht hinterlegt ist. Dann kann ich ja sehen, ob sich am Erscheinungsbild etwas ändert.

jaenicke 30. Okt 2016 12:21

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Die Wahrscheinlichkeit, dass es mit Delphi 10 besser aussieht, ist zumindest sehr hoch. Da niemand weiß was du in deinem Programm benutzt, kann das so natürlich niemand genauer sagen. ;-)

Zuerst nur die GUI Elemente zu testen ist sicher der richtige Weg, ja.

ralfstocker 30. Okt 2016 17:27

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Für alle, die glauben, dass 4k-Monitore von Delphi unterstützt werden:

https://quality.embarcadero.com/issues/?filter=13014

jaenicke 30. Okt 2016 22:40

AW: Delphi-Roadmap: Unterstützung von 4K-Monitoren
 
Wenn du nach Windows suchst, wirst du sicher noch viel mehr Einträge finden. Bedeutet das dann auch, dass Windows nicht unterstützt wird? :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 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