AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 12 und HighDPI

Ein Thema von harfes · begonnen am 13. Nov 2023 · letzter Beitrag vom 8. Dez 2023
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.085 Beiträge
 
Delphi 12 Athens
 
#1

AW: Delphi 12 und HighDPI

  Alt 7. Dez 2023, 16:39
Könnte hiermit zusammenhängen: RSP-37558 - Form border uses IDE DPI, but should use form DPI
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi 12 und HighDPI

  Alt 7. Dez 2023, 18:40
Vielen Dank. https://quality.embarcadero.com/browse/RSP-37558 ist aber nicht die Ursache.
Ich bin dahintergekommen. Wenn man unter Project - Options - Custom Styles einen anderen Style wählt als default Windows dann ändert sich die ClientWidth.
Im Default-Modus ist alles richtig. Abhängig vom gewählten Style vergrößert sich die ClientWidth der Form bei mir um 10 oder 12 px (ich habe nicht alle Styles bzw. Scalings getestet).

Fazit: es ist wohl kein HighDPI Thema, sondern eine Frage der Styles. Das Problem wurde schon früher bemerkt, Gugl zeigt diverse Fundstellen.
Keine Ahnung ob es eine generelle Lösung gibt, ich finde schon was. Es ist eben mal wieder kein Rapid Application Development, wie öfter schon Kampf an unerwarteten Fronten.
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.085 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi 12 und HighDPI

  Alt 7. Dez 2023, 21:14
Du kannst ja mal versuchen ob es hilft wenn du in den Formular-Designer Optionen die VCL-Stile deaktivierst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi 12 und HighDPI

  Alt 8. Dez 2023, 10:19
Du kannst ja mal versuchen ob es hilft wenn du in den Formular-Designer Optionen die VCL-Stile deaktivierst.
Nein, das hilft leider nicht. Es passiert dasselbe seltsame Verhalten.
Mittlerweile bin ich der Meinung dass es ein Bug ist. Wir haben ja das Schlagwort WYSIWYG. Und wenn der Style im Designer aktiviert ist, sollte ich ja zur Laufzeit genau dasselbe bekommen, was ich zur Designzeit bereits sehe. In diesem Fall ändert sich aber klar die ClientWidth der form, während ClientHeight passt.
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.085 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi 12 und HighDPI

  Alt 8. Dez 2023, 10:51
Wie ich das sehe, liegt das Problem darin, dass beim Skalieren des Forms Width das ClientWidth implizit über Winapi.Windows.GetClientRect ermittelt wird. Das ist naturgemäß von der DPI Awareness des Handles abhängig und berücksichtigt die dafür gültige BorderWidth, was in dieser Situation aber falsch ist.

Ich muss das mal in einer ruhigen Stunde näher untersuchen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 00:49 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