![]() |
Dpi Awareness und Windowsskalierung
Hallo,
ich verwende die Version Delphi Berlin um eine bestehende Anwendung dpi-aware zu machen. Die Skalierungseinstellungen von Windows werden ja jetzt weitestgehend berücksichtigt :? Da die Kombination der Windowseinstellung und des verwendeten Monitors manchmal für meine Anwendung nicht optimal aussieht, andere Anwendungen aber ganz passabel ausschauen, würde ich gerne meine Anwendung eine Stufe größer oder auch mal kleiner als den Windowsstandard haben. Gibt es eine Möglichkeit wie man eine Anwendung zusätzlich skaliert, ohne dass die Windowseinstellungen verändert werden müssen und ohne dass andere Programme beeinflusst werden? |
AW: Dpi Awareness und Windowsskalierung
Hast du es einmal mit ScaleBy versucht? Eine ausführliche Übersicht findest du in der Doku:
![]() |
AW: Dpi Awareness und Windowsskalierung
Die Routine ScaleBy habe ich anfangs kurz ausprobiert, habe diesen Ansatz aber bald wieder verworfen, da hier dann doch noch für mich zu viele Details zu berücksichtigen wären wie z.B. die Größenanpassungen und Positionierungen der Controls.
Die Skalierung eines Formulars beim Einlesen (also vor dem Loaded) funktioniert seit Berlin ja eigentlich sehr gut. Gäbe es nicht da eine Möglichkeit einzugreifen? |
AW: Dpi Awareness und Windowsskalierung
Diese wird mit ScaleBy gemacht. ;-)
Was du versuchst wurde in diesem Thread besprochen: ![]() Einen Bug gibt es da auch noch: ![]() |
AW: Dpi Awareness und Windowsskalierung
Das Setzen der PixelsPerInch über die Helperklasse funktioniert für meine Formulare recht ordentlich. Bei einem Mehrbildschirmsystem wird für die Skalierung allerdings die Einstellung der einzelnen Monitore verwendet.
Ich habe in der Zwischenzeit mal die Methode ScaleForPPI für meine Formulare überschrieben. Dort kann ich eine neue Auflösung mitgeben, was für meine Anforderung gut funktioniert. Jetzt habe ich aber noch ein aktuelles Problem beim Verschieben eines Formulars von einem Monitor auf einen anderen, der eine andere Auflösung hat. Da wird über die WMDpiChanged Botschaft eine Skalierung gemacht, die ich nicht so einfach manipulieren kann. Gibt es da evtl. eine Möglichkeit? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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