![]() |
Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen!
Ich hatte es schon ![]() Nachdem Embarcadero ja irgendwie nicht richtig aus dem Quark kommt, habe ich mich entschlossen das Heft in die Hand zu nehmen und selbst an der VCL rumzuschrauben, um eine konsistente, stabile und vor allem Delphi-würdige Unterstützung von Multi-Monitor-Systemen mit unterschiedlichen DPI-Einstellungen bereitzustellen. Erste Tests haben schon sehr vielversprechende Ergebnisse geliefert. Die angefügte ZIP-Datei enthält zwei ausführbare Programme: HighDPIRef und HighDPITest. Die Ref-Version ist mit einer Standardinstallation von Delphi 10.2.3 Tokyo erstellt worden. Bei der Test-Version habe ich ein paar Änderungen an der VCL gemacht und ein anderes Manifest verwendet. Beide Projekte verwenden dieselben Sourcen, lediglich der Suchpfad des Test-Projekts ist anders. Das Ref-Projekt liegt auch im Source bei, wie auch eine neue Komponente TDPIAwareImageList, deren Sourcen im DynImageList-Ordner zu finden ist. Wer also das MainForm öffnen will, sollte vorher das entsprechende DynImageList-Package installieren. Allerdings hat das Package noch nicht die nötige Veröffentlichungsreife - das kommt aber noch. Für die Tests wünsche ich mir eine breite Abdeckung unterschiedlicher Systeme (Anzahl Monitore, System-DPI, Monitor DPI, Windows 10, 8.1, 8, 7). Ergebnisse am besten in diesem Thread posten, dann haben alle was davon. Wenn jemand noch weitere Bereiche kennt, in denen es noch Probleme dieser Art gibt, am besten auch hier posten. Ich werde versuchen, auch diese in die Patches mit aufzunehmen. Ach ja, bevor es jemand versucht: VCL-Styles funktionieren auch mit diesen Änderungen noch nicht konsistent mit High-DPI. Das ist ein deutlich größerer Aufwand. |
AW: Suche Tester für High-DPI
Erstmal danke, dass Du Dich mit diesem Thema beschäftigst. Es wird immer wichtiger.
Wenn ich es also richtig verstehe, soll die Darstellung von HighDPIRef und HighDPITest verglichen werden und Abweichungen hier gepostet werden? |
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 4)
Wunschgemäss ein paar Screenshot unter folgenden "Bedingungen"
- Win 10 - 4k Monitor - Folgende Skalierungen wurden verwendet: 100%, 200% und 350% |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Verstehe ich das richtig, dass du dich den Problemen der VLC annimmst?
Beispiel wäre hier, man baut eine Benutzeroberfläche mit einem 96 DPI-Monitor (100%) und unter 150% und 200& sieht es schrecklich aus? |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hätte die beiden .exe-Dateien "Original" und "Modified" oder so genannt, unter den Abkürzungen hätte ich mir auch nicht vorstellen können was nun was ist ;-)
Getestet auf 125% (120 dpi) (2560x1440) und 150% (144 dpi) (1920x1080) Ich habe nur eine Sache: In den Ownerdraw-Menüs sieht der Pfeil schlecht aus. PS: Ist das beabsichtigt dass die beiden TEdits im GridPanel1 eine für die Schriftart zu große Höhe haben? Vergleiche mit dem Edit1... |
AW: Suche Tester für High-DPI
Welche Dateien müsste man denn übernehmen, um eine "fixed" VLC zu haben?
Aktuell handhabe ich es so, dass ich auf HighDPI prüfe (alles größer 96, weil 96 meine eigene DPI ist). Anschließend re-positioniere und vergrößere oder verkleinere alle Komponenten, die irgendwie falsch dargestellt werden. Fast vergessen. Scaled ist bei komplexeren Forms selbstverständlich auf False. Ansonsten drohen Schäden an den Augen bei der aktuellen VLC (übertrieben gesagt). |
AW: Suche Tester für High-DPI
Zitat:
Das alles ist noch Work-in-Progress. Deswegen wird der Downloadlink in dem G+-Post auch öfter mal aktualisiert. Zitat:
Zitat:
|
AW: Suche Tester für High-DPI
Zitat:
Zitat:
|
AW: Suche Tester für High-DPI
Möchte gerne anonym bleiben. Von daher geht das leider nicht.
Es ist aber im Grunde genommen eine modale Form, in der größe nicht veränderbar, ein TPageControl und eine TListBox drauf. Zur Laufzeit werden die Tab-Titel ausgeblendet. Bei HighDPI (> 96) ist die ListBox dann irgendwo links oben im Nirvana (Versatz rund 10px). |
AW: Suche Tester für High-DPI
Gibt es eine Demo die einem ein Skalierungs-Fehler zeigt und mit deinen Funktionen repariert bekommt?
Den einzigen Skalierungs-Fehler über den ich je gestolpert bin ist die korrekte Höhe der Titel-Leiste zu prüfen und im Code verwenden damit bei "Fixed" das Layout des Dialogs funktioniert und keine Scrollbars eingeblendet werden. |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Falls Du das meinst, ein Beispiel basteln wo ein Titel-Leisten Skalierungs-Fehler erscheint, das kann ich Dir anfertigen, allerdings nur .dpr/.rc da per WinApi erstellt (ohne DFM) und ohne deinen Code integriert/gesehen zu haben.
Der Fehler reproduziebar Nachvollziehbar wäre, man stellt die DPI auf was höheres als 96 DPI und startet Anwendung = Dialog passt nicht mehr in das erstellte Window da die Titelleiste nun größer ist = Scrollbars erscheinen. |
AW: Suche Tester für High-DPI
Zitat:
Non-VCL ist also hier komplett out-of-bounds. In dem Fall empfehle ich ein intensives Studium der diesbezüglichen WinApi-Dokumentation. |
AW: Suche Tester für High-DPI
Ich Versuche mal das WinApi nach VCL zu bringen, mal sehen was Delphi mit einer geänderten Skalierung anstellt, Verzeih die nicht Themen-Bezogene (nonVCL) Nachricht von mir. Komponenten werde ich ich, bis auf Panel & Button, nichts besonderes verwenden.
|
AW: Suche Tester für High-DPI
Mir ist gerade erst aufgefallen, dass sich 10.2.2 Starter wohl anders verhält als vorherige Versionen was HighDPI angeht.
Früher wurden meine Komponenten oft verschoben. Daher setzte ich Scaled erst einmal auf False und rief dann selber ScaleBy [ meine Original-DPI ] auf + weitere Änderungen von Hand. Lasse ich das alles jetzt weg und stelle Scaled auf True, erhalte ich glas-klare Schrift (Windows 7, bei 10 ist es verschwommen), dafür ist sie kleiner. CheckBoxen und RadioBoxen sind aber entsprechend groß. Ist letzteres das Szenario was unerwünscht ist? [IRONIE] Zitat:
[/IRONIE] |
AW: Suche Tester für High-DPI
Zitat:
Zitat:
|
AW: Suche Tester für High-DPI
Ist mir bis heute ein Rätsel wie man ohne Änderungen an Scaled + irgendwas anderes, hier und dort noch was ... gute Resultate für 100% bis 200% Scale von Win XP bis 10 hinbekommt.
|
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 2)
Vielen Dank, dass Du dich darum kümmerst!!!
Es wäre schön, wenn Du auch ![]() ![]() Im Anhang 2 Screenshots 1.Monitor mit 120 DPI und 2. Monitor mit 96 DPI. Die Menus sehen auch OK aus. Karlheinz |
AW: Suche Tester für High-DPI
Zitat:
Welche sind das sind, damit auch wir in unseren Kompilaten keine DPI-Probleme mehr haben? Oder sendest du die Bugfixes einfach nur an Embarcadero für das nächste Update? |
AW: Suche Tester für High-DPI
Zitat:
Die geänderten VCL-Sourcen darf ich so zumindest nicht öffentlich weitergeben. Eventuell kann ich aber die Patches in Form von diff-Dateien publizieren (kläre ich gerade). Dann muss die jeder selbst auf seine VCL-Sourcen anwenden. Jedes halbwegs brauchbare Versionskontrollsystem sollte das relativ einfach ermöglichen. Leider sind dabei alle außen vor, die mit Laufzeitpackages arbeiten, da man die nicht ganz so einfach neu compiliert kriegt. |
AW: Suche Tester für High-DPI
Zitat:
Einem geschenkten Gaul schaut man nicht ins Maul. Ein Problem habe ich schon seit vielen Versionen. Kann ich aber leider nicht nachvollziehen oder eine Demo machen. TForm, TMainMenu drauf und unter das Mainmenu eine TToolBar. Je höher die DPI, desto größer werden die TToolBar-Buttons, was logisch ist. Die Bilder da drin bleiben aber leider klein. Füge ich von Anfang an größere Bilder ein, sind die Buttons so groß wie das Bild, was nicht gewollt ist. |
AW: Suche Tester für High-DPI
@günni0: Diesen Fehler kannte ich, damals hatte ich eine Stretch Funktion dafür reingebastelt bis ich von Toolbars komplett weg bin.
|
AW: Suche Tester für High-DPI
erstes und einziges [OT]
Irgendwann gehe ich auch von der Toolbar weg. Muss nur noch eine schicke Alternative finden/bauen. [/OIT] |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Ohne jetzt in die Demo zu gucken nehme ich an:
normale TToolBar und statt TImageList eine TDPIAwareImageList mit (großen) Grafiken bis sagen wir mal 48x48 Pixeln drin die dann skaliert werden? |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Gerade die Demo aufgemacht.
Tolle ImageList! Aber durch diese neue Erkenntnis habe ich nun wieder Arbeit zu erledigen: alle Grafiken in verschiedenen Größen neu anlegen :stupid: |
AW: Suche Tester für High-DPI
Ich habe keine Probleme festgestellt, die mit der Darstellung der Anwendung selbst zu tun haben.
Ausnahme (Win 7) Wie verhält sich die Anwendung / OS (Win 7 / ..) beim Wechsel der Skalierung mit der Wahl der linken oberen Ecke. Wird irgendein (Vor-)zustand der Fensterposition bei Mehrfachstart persistiert? Gefühlt: nicht persisistiert Erlebt: bei Wechsel von Normal/Standard auf Mittel mit CPU bzw. didizierter Graka im Laptop wird einmal unnötig weit unten positioniert, der Fuß der Anwendung ist nicht mehr im Bild und einmal wird so positioniert, dass die Anwendung noch vollständig angezeigt wird. |
AW: Suche Tester für High-DPI
Zitat:
Kannst du bezüglich der Ausnahme (Win 7) noch etwas konkreter werden? Z.B. welche Einstellungen, welche Schritte, was erwartest du und was passiert stattdessen. Zitat:
|
AW: Suche Tester für High-DPI
Alles bezieht sich auf Win7, was anderes habe ich noch nicht getestet.
Es ging nicht um Effekte die beim Wechsel selbst auftreten. Der Wechsel verlief so: Einstellung ändern Windowsdialog: "Wirksam nach Neuanmeldung" Neuanmeldung Neustart des Programms Dabei hat Windows dann in einem Fall die Bildschirmposition wohl schlecht gewählt. Ich wollte nur wissen, ob durch das Programm etwas persistiert wird (z.B. Fensterposition) oder ob Windows sich kümmert. Das tut es ja laut Deiner Aussage. Ein erneuter Test würde ja keinen Sinn machen, wenn die Fensterposition beim Beenden gespeichert und beim Neustart irgendwie berücksichtigt wird. Der Effekt unter Win 7 war einfach, dass bei 2 verschiedenen Graka (Cpu und dediziert), die Positionierung beim Wechsel der Auflösung unterschiedlich erfolgte. Hat dann wahrscheinlich gar nichts mit Deiner Anwwendung zu tun. |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Das ist ja ein relativ exotischer Fall- der Skalierungswechsel an sich- besonders weil es hier nicht mal etwas mit unterschiedlichen Monitoren/Grakaausgängen zu tun hat, sondern darauf basiert, dass die dedizierte Graka des Laptops eine explizite "Zuständigkeit" für (d)eine Anwendung zugewiesen bekommt.
Was das Thema (schlechte) Fensterpositionierung angeht, gibt es viel banalere und häufigere Probleme. Ich habe bspw. auf einem (Doppel)Monitor die Taskleiste nicht auf Standardposition (unten), sondern links relativ breit (auf dem linken Monitor). Das wird von einigen Programmen nicht berücksichtigt, wenn man aus der Vollbilddarstellung auf Normal (wsNormal) umschaltet. Das Fenster landet dann hinter/unter der Taskleiste. Vermutlich wäre es ähnlich, wenn die Leiste oben oder rechts läge. Ich hab mich aber noch nie darum gekümmert, unter welchen Umständen das genau geschieht. Mglw. hat es was damit zu tun, dass der 2. Monitor gar keine Taskleiste hat und die gespeicherte Position beim Umschalten auf wsNormal am 2. Monitor auch für den linken "Hauptmonitor" verwendet wird, wenn das Fenster dorthin geschoben wurde. Das (Anwendungsfenster hinter Taskleiste) ist z.B. bei einer (gekauften, aber veralteten) Delphianwendung so. |
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 5)
Test unter Win10, neuer User, erstmal 5 Bilder von 22, bin mir nicht sicher, wie das hier mit der Uploadgröße ist.
Die Dateinamen enthalten jeweils ein paar Bemerkungen, das Dateinamenmuster n-100-100pct steht für n.Bild, linker Moni100Prozent, rechter Moni 100%, Dateinamen enthalten Anmerkungen. |
AW: Suche Tester für High-DPI
Zitat:
|
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 5)
Tja, ich glaube bis Bild Nr. 5 nicht.
Ich will/wollte mir aber da auch gar nicht die Mühe machen, das zu beurteilen. Die Beschreibung kannst Du auch ignorieren, es ist einfach eine Folge von Bildern. Wenn ich den gleichen Aufruf einfach mehrmals gemacht habe, um zu sehen wie sich die Fensterposition ändert, kann das bspw. aus der Beschreibung hervorgehen. Oder wenn die Anwendung maximiert wird, gibt es offenbar kein Event, der in Deiner Anwendung die dargestellte Auflösung aktualisiert. So Kram steht da drin. Ob das interessant ist oder sich alles aus dem Bild selbst erschließt .. keine Ahnung. Man weiß ja vorher nicht, was nachher interessant ist. Und ob Daniel sich über solche Uploads freut? Falls nicht, kann ich es auch wieder löschen. Wenn Du die restlichen Bilder noch haben willst, muss dann wohl ein anderes Verfahren her. |
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 1)
Hier meine Resultate: Beide GUIs sehen fast gleich aus: Die Radiobuttions sind leicht unterschiedlich groß und die rechten und unteren Buttons im TabSheet sind weiter unten/rechts im linken Bildschirmfoto (ref)
Edit: Gerade noch einen Unterschied gefunden: In "ref" ist das PopUp-Menü zu klein. In "Test" passt es. 4K Display unter Windows 10 mit einer Skalierung. Welche Skalierung aktiv ist, kann ich leider nicht nachschauen. Das Systemsteuerungsfenster öffnet sich seit dem Windows Update nicht mehr... |
AW: Suche Tester für High-DPI
Liste der Anhänge anzeigen (Anzahl: 1)
Hier die Bildschirmfotos von den PopUp-Menüs
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 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