![]() |
Bitmaps zu klein
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ich bin von Delphi RAD Studio (Uralt) auf Delphi Berlin umgestiegen.
Wenn jetzt das gleiche Programm auf 2 unterschiedlichen Windows 10 Rechner läuft, ist die Darstellung auf den einen Rechen korrekt und auf den anderen werden die Bitmaps auf den Speedbuttons zu klein dargestellt. Bei der Schrift in den Formularen ist es genau umgekehrt. Bei beiden handelt es sich um Arial als Schrifttyp. Welche Einstellungen sind da nicht richtig gesetzt. Ich finde bei Speedbutton z.B. auch keine Stretch Einstellung? |
AW: Bitmaps zu klein
Es ist das gleiche Programm. Aber wurde der die Exe auch mit Berlin erzeugt?
Ich hatte ähnliche Probleme, als ich meine Exe mit Berlin erstellt habe. An meinen Windows-Einstellungen lag es nicht. Bei meinem älteren XE8 gibt es das Problem nicht. Nur bei Berlin. |
AW: Bitmaps zu klein
Es sieht einfach so aus, dass die Bitmaps Pixelmäßig gleich groß bleiben
und ihr euch vorstellt, dass sie auf einem High-DPI-System größer dargestellt werden sollten, genauso wie die Buttons und die Schrift größer werden. Nur werden die Buttons/Fonts eben mit mehr Pixeln dargestellt und die Bilder müssten gestretcht werden, oder man verwendet Icons mit mehr Pixeln. |
AW: Bitmaps zu klein
Ich glaube nicht, dass das nur so aussieht. Eine Messung hat bei mir ergeben, dass die Icons tatsächlich kleiner sind bei höherer DPI.
Es sind ja nicht nur die Bitmaps. Eine meiner Anwendungen sah mit Berlin kompiliert komplett anders aus als mit XE8. Da muss doch irgendwas dran sein. Siehe: ![]() |
AW: Bitmaps zu klein
Messung: In Millimeter oder in Pixeln?
Gut, auf den Zweiten längeren Blick sind die Oberen verschwommen und nicht so schön pixelig, wie die Unteren. Allerdings ist auch die Caption verschwommen und das MainIcon schiebt sich über die Schrift ... dachte daher, daß das HD-Bild für den Vergleich maßstabsgetreu verkleinert wurde. |
AW: Bitmaps zu klein
Zitat:
Vor Berlin war das nie der Fall. Ich installiere mir gleich mal Berlin Starter in eine VM und erstelle eine kleine Demo welche ich dann mit XE8 und Berlin kompiliere. Danach mache ich Screenshots. Kann aber etwas dauern. |
AW: Bitmaps zu klein
Liste der Anhänge anzeigen (Anzahl: 1)
Schalte mal in den Projektoptionen Anwendung
die Hochauflösung aus und dann vergleiche das noch mal |
AW: Bitmaps zu klein
Dann sollte es so wie im NichtHD-Windows aussehn ... nur pixelliger.
Wenn man Windows im Manifest nicht sagt, dass seine Anwendung HD kann, dann tut Windows so, dass es ein NichtHD-Bildschirm ist, lässt die Anwendungen in der kleineren Auflösung laufen und zoomt das Fenster dann nur in der Anzeige größer. Wenn man das aktiviert hat, dann macht Windows nichts, und das Programm läuft in der nativen Auflösung, also erstmal alles zu klein. Hier muß sich dann die VCL/FMX selber um das Zoomen kümmern, wobei es hier nicht so pixellig ist, da dabei halt die Komponenten größer und mit mehr Pixeln gezeichnet werden. Und hierbei scheint Delphi/Windows sich bei den Button-Bitmaps bissl zu vertun. |
AW: Bitmaps zu klein
mir ist das schon klar,
nur sollte es dann eigentlich genau wie unter XE8 aussehen. Die ganze High DPI Geschichte ist weder von der VCL noch von Windows wirklich sauber gelöst. Ganz interessant in diesem Zusammenhang: ![]() |
AW: Bitmaps zu klein
Zitat:
|
AW: Bitmaps zu klein
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
angehängt mal ein Screenshot gleiches Programm einmal mit einmal Ohne HighDpi |
AW: Bitmaps zu klein
Es ist leider so, daß man für die Skalierung der Icons selbst sorgen muss. Selbst wenn Delphi das übernehmen würde, sähe es nicht besser aus als das Windows-Ergebnis.
Nun hat man mit FMX ja schon eine komplexere Imagelist geschaffen, die auf solche Skalierungen reagieren könnte (nicht, daß man dadurch von der Bereitstellungen der verschiedenen Größen befreit wäre, wenn man ein sauberes Ergebnis möchte). Leider lässt sich diese Technik nicht so einfach in die VCL übernehmen, da man hier noch an die Windows-interne ImageList-Implementierung gebunden ist. Es bleibt also bis auf Weiteres in der Hand des Entwicklers, bei unterschiedlichen Bildschirmskalierungen die passenden Bildchen bereitzustellen. |
AW: Bitmaps zu klein
Zitat:
Wir haben hier eine relativ Grosse Anwendung auf DPI Aware umgestellt. Wir "mussten" da wir im CAD Bereich zu Hause sind und bei unseren Kunden schon sehr viele solcher Displays stehen. Leider auch im "mixed mode", also verschiedene DPI auf den Monitoren. Wenn ich für jeden Fluch den ich bei dieser Umstellung gehört habe, 5€ bekäme würde ich sofort in Rente gehen :-) Da ist an vielen Stellen in der VCL noch manches im argen. Ich will es aber gar nicht unbedingt auf EMBA schieben. Microsoft hat da seinen "Job" auch eher schlecht als recht gemacht. Aber wenn EMBA jedem der noch verbliebenen Entwickler eine HIGH DPI Monitor hinstellen würde... (könnte helfen) Es ist auf jeden Fall ein nicht zu unterschätzender Zeitaufwand. Und jeder Entwickler der seinem Programm das DPI enabled Flag im Manifest mitgibt und es dann nicht kann, müsste mit reiner C Programmierung nicht unter 3 Jahren bestraft werden!!!! |
AW: Bitmaps zu klein
Zitat:
|
AW: Bitmaps zu klein
Zitat:
|
AW: Bitmaps zu klein
Zitat:
Das was Du siehst ist der unterschied dpi-aware oder nicht |
AW: Bitmaps zu klein
Zitat:
|
AW: Bitmaps zu klein
Zitat:
|
AW: Bitmaps zu klein
Zitat:
Das wäre dann die Erklärung |
AW: Bitmaps zu klein
Zitat:
|
AW: Bitmaps zu klein
Zitat:
Delphi-Quellcode:
nicht näher analysiert wurden. Mit dieser Einstellung setzt du immerhin den Automatismus außer Kraft und bist selbst für die korrekte Skalierung verantwortlich. Da sich mit Berlin so Einiges in diesem Bereich getan hat und
Scaled = false
Delphi-Quellcode:
eher selten angewendet wird, kann es natürlich sein, daß diese Kombination bei der Implementierung nicht ausreichend bedacht wurde und dort noch ein paar Fehler schlummern.
Scaled = false
|
AW: Bitmaps zu klein
Liste der Anhänge anzeigen (Anzahl: 1)
So ich habe das jetzt mal durchgespielt mit XE7 und Berlin (habe hier kein XE8 installiert)
im Anhang 2 Bilder Jeweils compiliert
Leider als Zip da die Anhänge hier sonst zu gross werden |
AW: Bitmaps zu klein
Hier sieht man, daß bei Berlin mit aktivem High-DPI die Buttons ebenfalls vergrößert werden, allerdings mit den vorhandenen, zu kleinen Icons. Bei XE7 behalten die Buttons ihre Größe, wie auch bei Scaled = false.
Würde man jetzt unter Berlin die Icons an den aktuellen DPI-Wert anpassen (z.B. in dem man die ImageList dynamisch durch eine mit größeren Bildchen ersetzt), wäre das Ergebnis ähnlich dem ohne High-DPI-Unterstützung, nur besser. Danke! Die Screenshots unterstreichen meine vorige Aussage. |
AW: Bitmaps zu klein
Zitat:
Gruß K-H |
AW: Bitmaps zu klein
Zitat:
Zitat:
|
AW: Bitmaps zu klein
Zitat:
Gerade in Multi DPI Settings sprich mehrere Monitore mit unterschiedlichen DPI Auflösungen ist es nicht einfach das sauber hinzubekommen. Wir haben das bei uns gelöst in dem wir alle!!! Formulare von einer Basis-Klasse ableiten die je nach dem verschiedene Events auslöst. All das muss recht aufwändig getestet werden. Wer erwartet das es einfach mit setzen einer checkbox getan ist, wird Probleme bekommen. Das muss man aber auch den Kunden oder dem Management klar machen, es kostet! Wenn man sieht wie schwer sich selbst Microsoft damit anstellt kann man erkennen das es nicht trivial ist. Und wenn ich sehe wie viele Anwendungen behaupten DPI Aware zu sein und es nicht sind....... :evil: |
AW: Bitmaps zu klein
Zitat:
Ich prüfe beim Erzeugen eines Formulars, ob die DPI ungleich der ist, die ich zur Entwicklung benutzt habe. Ist das der Fall, treffe ich einige Änderungen selber von Hand (vorher sehr aufwändig getestet mit allen möglichen DPI unter XP über Win 7 bis Win10). Aufwändiges Testen und selber "reparieren" scheint mir die einzige brauchbare Lösung, wenn man dem Benutzer eine ordentliche Benutzeroberfläche bieten möchte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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