![]() |
AW: Skalierbare Fensterinhalte
Vermutlich bekommt diese Komponente die Änderung nicht mit, da die Message von Windows nur an die TopLevelFenseter gesendet wird.
* versuch die Message an die Komponente durchzureichen * bau eine responsive Webseite, welche sich an die Größe des Fensters anpasst (CSS und/oder JavaScript) * setze von deiner Anwendung (OnResize) via JavaScript passende Schriftgrößen und so * lade bei Änderung einen neuen angepassten Seiteninhalt * ... |
AW: Skalierbare Fensterinhalte
Für eine ähnlich gelagerte Anforderung habe ich mir damit beholfen, in die DPR der Anwendung folgende Funktion einzubauen:
Delphi-Quellcode:
Bei der Zahl 890 handelt es sich um die Pixelhöhe der Main-Form. Das klappt problemlos, und es ist kein Gefummel mit "Align, Anchors und Constraints" erforderlich.
if Screen.WorkAreaHeight < 890 then
SetProcessDPIAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); |
AW: Skalierbare Fensterinhalte
Problem hier ist, dass es "erstmal" funktioniert. (also nichts in der DPR, OnCreate o.A. nötig.)
* Funktioniert es wirklich? Wie sieht es aus, wenn das Programm/Fenster auf dem anderen Monitor startet? Laut Meldung stimmt es nichtmehr, wenn das Fenster zwischen zwei Monitoren mit unterschiedlichen DPI umhergeschoben wird. * Auf was steht Projektoptionen > Anwendung > Manifest > DPI-Unterstützung ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 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