![]() |
XE11 + High-DPI für blutige Anfänger
Hallo zusammen,
es ist soweit, ich habe nun ein System mit XE11 + 4K-Monitor am Start. Zielstellung ist das Erstellen einer Anwendung, die für 100%, 125%, 150% ... 200% usw. Skalierung taugt. Denn ich weiss ja nun nicht, was sich bei einem Anwender für ein System im Einsatz befindet. Der Status quo sieht so aus, dass ich bisher mit 100% auf 1920 x 1080 px entwickelt habe. Mit allen möglichen Komponenten, z.B. TeeChart und Konopka. Wenn nun ein Anwender 200% einstellt, klappt es derzeit reichlich schlecht mit der GUI meines Programms. Nun, seit XE11 wird ja reichlich mit High DPI um sich geworfen. Kapiert hab ich es noch nicht. Also: wie geht man denn nun das Ganze richtig an? Embarcadero hat da so ein paar Veröffentlichungen losgelassen, z.B. ![]() ![]() ![]() Aus letzterem habe ich auch so einen Code-Schnipsel mit WMDPIChanged (was ja mit Ausgabe 2014 schon reichlich her ist) verwendet. Meine Formulare reagieren auch darauf und skalieren mit, aber irgendwo wird immer irgendeine Komponente abgeschnitten. Ein Konopka-Dialog zum Auswählen von Verzeichnissen reagiert überhaupt nicht, er bleibt winzig klein. Beim TeeChart reagiert was, aber auch irgendwie unterschiedlich, z.B Schrift der Legende. Dann lese ich noch was von Manifesten, bei denen ich bisher gar nicht durchblicke. Weiter geht es dann noch mit Icons, also Thema bmp oder svg. Mmh, wenn es dich mit der IDE so neue schöne Buttons gibt, wo bekommt man denn die nun wiederum her? Früher gab es ja mal Images mit dabei. Muss ich nun alles wieder selbst erstellen oder irgendwo zusammensuchen? Es wäre toll, wenn ich ein paar Ratschläge für ein kleines Demoprogramm zusammenbekäme. Inhalt der GUI: ein paar bebilderte Buttons, eine Verzeichnisauswahl z.B. mit den Konopka-Tools (als Beispiel für eine beliebige Fremdbibliothek, könnte auch TMS sein), ein TeeChart. Evtl. eine Groupbox mit Checkboxes, die zur Laufzeit erstellt wird und in der Größe anzupassen ist. Also letztlich eine simple GUI, die sich aber aber auf diversen Bildschirmen und mit diversen Skalierungen korrekt verhält. Inkl. Anworten, ob man nun Per Monitor, Per Monitor v2, GDI Scaling etc. verknüpft mit welchem Manifest verwenden muss. Wie konfiguriert man denn die IDE so, dass sie das optimal unterstützt? Finde ich hier Hilfe auf meine 1001 Fragen? Danke im voraus für eure Antworten. Vielleicht helfen die auch anderen Suchenden. Grüsse Uli |
AW: XE11 + High-DPI für blutige Anfänger
Version 11 habe ich noch nicht installiert.
Ich hatte mal mit Lazarus ein Programm mit dynamischen Formularelementen. Da habe ich die Positionen und Grössen manuell berechnet, weil Lazarus da nicht richtig umgerechnet hatte. Elemtsize = Positionswert vom Fenster, Element, etc, welches umgerechnet werden soll. ceil(Elementsize/96*Screen.PixelsPerInch) Beispiel: ceil(400/96*Screen.PixelsPerInch) War mit Lazarus 2.0.6 geschrieben. |
AW: XE11 + High-DPI für blutige Anfänger
Zitat:
Auch ich habe mich mit dem Thema schon beschäftigt. Hatte das Thema damals aber zurückgestellt. Inzwischen habe ich auch Delphi 11 und einen 4K Monitor. Meine Gedanken dazu: 1. Die Zahl 1001 halte ich für gar nicht so unrealistisch. Ein Demo Programm gibt es schon, wird dir aber nicht helfen. 2. Etwas als Beispiel für eine beliebige Fremdbibliothek zu nehmen wird nicht funktionieren. Du wirst nicht umhinkommen jede Bibliothek für sich zu prüfen und ggf. zu ersetzen. (Bei mir ist DevExpress das Problem) 3. Warum fragst Du hier in "Delphi-IDE"? Die IDE ist noch das kleinste Problem. (Wo gehören eigentlich UI-Themen rein?) |
AW: XE11 + High-DPI für blutige Anfänger
Zitat:
![]() |
AW: XE11 + High-DPI für blutige Anfänger
Zitat:
![]() |
AW: XE11 + High-DPI für blutige Anfänger
Liste der Anhänge anzeigen (Anzahl: 2)
Vielen Dank für die ersten Antworten.
Kann die Moderation den Ort dieses Threads auf ![]() Ich hatte hier nach High DPI gesucht und der gefundene Thread war eben bei der Delphi IDE. Ich hab so irgendwie die Befürchtung das es mit dem seitens Emba so vielfach beworbenen Rapid Development nix wird. Als Beispiel ein schlichter FileDialog bei Scaling 200%. Anbei das Aussehen beim Standardtheme Windows und dann beim von mir verwendeten Theme Iceberg Classico Man beachte dann neben dem unterschiedlichen Aufbau dann die zu kleinen Symbole beim zweiten Theme. Wenn ich dannn das nun alles zu Fuß nachbessern muss (muss ich dann aber auch erst können!) bin ich da ja mehr damit beschäftigt als mit dem eigentlichen Ziel des Programms. Grüsse Uli |
AW: XE11 + High-DPI für blutige Anfänger
So richtig spaßig wird es erst, wenn mehrere Monitore mit unterschiedlicher Skalierung zum Einsatz kommen und der User dann ein Fenster der Anwendung zwischen diesen Monitoren bewegt. Nur so als Hinweis am Rande ...
|
AW: XE11 + High-DPI für blutige Anfänger
Liste der Anhänge anzeigen (Anzahl: 1)
Ich stelle so zwischenzeitlich fest, dass Delphi + High DPI irgendwie Marketinggeschwurbel ist. :(
Anders kann ich mir das nicht erklären, siehe Anhang |
AW: XE11 + High-DPI für blutige Anfänger
Zitat:
|
AW: XE11 + High-DPI für blutige Anfänger
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Jetzt habe ich aber genau die von Dir beschriebene Situation: Mein Front-Monitor mit 2560x1440 Punkten und 125% Skalierung, während die alten daneben die üblichen 1980x1020 mit 100 DPI haben. Hatte bislang für VCL immer mit einer eigenen Lösung gearbeitet, welche die Imagelisten raufskalieren. Das funktioniert dann zwar auch ganz gut auf dem HighDPI Monitor, aber sobald man das Fenster auf einen anderen Monitor mit niedrigerer Auflösung zieht, sind die Images zu groß. Dem kann man entgehen, indem man für das Manifest "Systembekannt" wählt, dann stimmt das Programm auf dem HighDPI Monitor, auf dem normalen Monitor stimmen die Grafiken auch, aber das Bild ist insgesamt verwaschen. Bleibt als Lösung wohl doch nur die Virtual Image List, die das dann jeweils passend skaliert. Die FMX-Anwendungen sehen erfreulicherweise alle gleich gut aus, egal welche Auflösung oder Monitor-Auflösung. Gibt es eigentlich einen Event für den Monitorwechsel? Denn unter Umständen muss man da noch anderes anpassen, wenn man selber irgendwo was wechselt... Edit: Was ich gerade noch festgestellt habe: Mit Einstellung "Über Monitor" oder "Über Monitor v2" flackert das Fenster beim Wechsel auf einen anderen Monitor und die Anchor-Right-Werte für Controls, die Ihre Breite so steueren, stimmen dann nicht mehr. Als Anlage mal 2 Screenshots zur Verdeutlichung: Bild "Vor Wechsel" zeigt das Fenster auf dem HighDPI Monitor, wie es OK ist. Dann ziehe ich das Fenster nur einmal auf einen anderen Monitor und ziehe es direkt wieder zurück, dann sieht es wie auf Bild "NachWechsel" aus (hab es farblich markiert, wo es nicht mehr stimmt). |
AW: XE11 + High-DPI für blutige Anfänger
Hallo!
Zitat:
oder Vcl.Forms.TForm.OnBeforeMonitorDpiChanged |
AW: XE11 + High-DPI für blutige Anfänger
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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