AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Frames skalieren falsch unter HighDPI-Gesichtspunkten
Thema durchsuchen
Ansicht
Themen-Optionen

Frames skalieren falsch unter HighDPI-Gesichtspunkten

Ein Thema von Carsten Hölscher · begonnen am 15. Jan 2022 · letzter Beitrag vom 17. Nov 2022
Antwort Antwort
Carsten Hölscher

Registriert seit: 29. Jul 2008
77 Beiträge
 
Delphi 11 Alexandria
 
#1

Frames skalieren falsch unter HighDPI-Gesichtspunkten

  Alt 15. Jan 2022, 18:48
Ich bekomme es nicht hin, dass ein Frame unter HighDPI-Gesichtspunkten korrekt dargestellt wird.

Ausgangslage:
- Win 11 und Delphi 11, das Projekt wird aus Delphi 7 portiert.
- Hauptmonitor 4K mit 150% Darstellung, Zweitmonitor FullHD mit 100%

Der Anhang zeigt ein kleines Testfenster, was links ein paar Eingabefelder direkt auf dem Form hat. Der große Bereich rechts ist ein Panel, das zur Laufzeit mit dem Frame belegt wird.

Das erste Bild zeigt den Sollzustand, so sieht es aus, wenn man die Anwendung auf dem 4k-Monitor startet. Ziehe ich dann das Fenster auf den FullHD-Monitor, verwürfelt es den Frame, wie man im 2. Bild im Vergleich zu den Eingabefeldern links sieht, die korrekt verarbeitet werden. Ziehe ich es dann wieder zurück auf den 4k-Monitor, bleibt es falsch.
Starte ich die Anwendung auf dem FullHD-Monitor, ist es von Anfang an falsch.

Der dpi-Wert in der dfm-Datei des Panels steht auf 144 - was m.E. korrekt ist, da der 4k-Monitor mit 150% mein "Arbeitsmonitor" für Delphi ist.

Da die Frames unter Delphi 7 ja auch etwas buggy waren, hatte ich auf dem Frame immer erstmal mit "clientalign" ein Panel gesetzt und darauf dann die eigentlichen Inhalte und außerdem alle Frames von einer eigenen Frame-Komponente abgleitet, die auf das OnScale-Ereignis reagiert und die Inhalte des Frames neu skaliert. Diese Eingriffe sind aber nicht schuld, hab das alles mal rausgenommen, dsa Verhalten wurde in keinem Fall wie erwartet.

Carsten
Angehängte Grafiken
Dateityp: jpg frame1.jpg (53,4 KB, 57x aufgerufen)
Dateityp: png frame2.png (30,6 KB, 49x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#2

AW: Frames skalieren falsch unter HighDPI-Gesichtspunkten

  Alt 15. Jan 2022, 20:01
Kannst du vielleicht ein kleines Testprojekt mit diesem Fenster erstellen, einfach nur das Design ohne Funktionalität?
Dann lässt sich dazu vermutlich mehr sagen.

Zudem könntest du damit einen Supportfall aufmachen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Carsten Hölscher

Registriert seit: 29. Jul 2008
77 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Frames skalieren falsch unter HighDPI-Gesichtspunkten

  Alt 15. Jan 2022, 20:49
Hier ein frisch in Delphi 11 erstelltes Projekt, es zeigt das gleiche Verhalten.

Carsten
Angehängte Dateien
Dateityp: zip FrameTest.zip (6,2 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Carsten Hölscher

Registriert seit: 29. Jul 2008
77 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Frames skalieren falsch unter HighDPI-Gesichtspunkten

  Alt 16. Jan 2022, 18:37
Hat das Beispiel mal wer testen können - ob sich das nur bei mir falsch verhält?
Wer keine 2 unterschiedlichen Monitore hat, sollte auch den Vergrößerungswert in Windows umstellen können, während das Programm offen ist. (Nachtrag: Ja, produziert den Fehler genauso)

Carsten

Geändert von Carsten Hölscher (16. Jan 2022 um 18:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#5

AW: Frames skalieren falsch unter HighDPI-Gesichtspunkten

  Alt 16. Jan 2022, 19:11
Ich habe leider aktuell kein Delphi 11 zur Verfügung. Ich habe es einmal mit Delphi 10.4.2 und Windows 11 getestet. Da klappt alles normal. Du könntest also vielleicht als Zwischenlösung erst einmal dorthin portieren. Der Schritt zu Delphi 11 ist dann ja sehr klein.

Die Ursache dürfte an den High-DPI Anpassungen in Delphi 11 liegen, mit denen es ja schon einige Probleme gab. Da wird es vermutlich bald noch Fixes geben. Ich bin aber nicht auf dem Laufenden, sprich habe nicht geschaut was sich in den entsprechenden Jira-Einträgen getan hat.
Ich würde an deiner Stelle tatsächlich mit diesem Beispiel einen Supportfall aufmachen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Carsten Hölscher

Registriert seit: 29. Jul 2008
77 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Frames skalieren falsch unter HighDPI-Gesichtspunkten

  Alt 16. Jan 2022, 20:01
Das scheint der gleiche Fall zu sein: https://quality.embarcadero.com/browse/RSP-36167

Carsten
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 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