![]() |
Windows Scaling für komplette Applikation deaktivieren
Hallo zusammen,
ich sitze mal wieder an einer älteren sehr umfangreichen Anwendung, welche mit dem Windows 10 Scaling einfach nicht funktioniert. Den Umbau auf unterstützte Skalierung möchte der Kunde nicht bezahlen. Bei über 1200 Forms und Frames mit diversen Ankern etc. ein großer Aufwand. Meine Frage lautet: Könnte man die eingestellte Windows-Skalierung nicht für die komplette Anwendung einfach deaktivieren? Es können ruhig alle anderen Anwendungen skaliert sein, aber diese eben nicht. Es kommen bei neuangeschafften Rechnern oder RDP-Zugriffen mit voreingestellter Windows-Skalierung immer wieder solche Anfragen und das Problem, dass Controls abgeschnitten oder falsch dargestellt sind. Ich habe hier im Forum schon einige Beiträge gelesen (Scaled-Property vom Form), aber nichts passendes gefunden. Könnt Ihr mir weiterhelfen? NACHTRAG: Die Checkbox "EnableHighDPI" ist bei mir deaktiviert. VG |
AW: Windows Scaling für komplette Applikation deaktivieren
In den Projektoptionen unter "Anwendung - Manifestdatei" den Haken bei "Hochauflösung aktivieren" entfernen, unter meinst Du etwas anderes?
|
AW: Windows Scaling für komplette Applikation deaktivieren
Hi,
mein Nachtrag hat sich zeitlich mit Deiner Antwort überschnitten. Das habe ich schon deaktiviert. Trotzdem wird die Anwendung immer skaliert angezeigt. |
AW: Windows Scaling für komplette Applikation deaktivieren
Hast Du auf die Build-Konfiguration geachtet? Man kann/muss das für Debug und Release jeweils getrennt einstellen.
|
AW: Windows Scaling für komplette Applikation deaktivieren
Hi,
ja diese sind alle deaktiviert. Das Projekt nutzt eine rc-Datei, muss dort vielleicht irgendwas noch eingestellt werden? |
AW: Windows Scaling für komplette Applikation deaktivieren
...ich habe es mal mit einem neuen Testprojekt ausprobiert, aber dort wird ein cxGrid und ein Button auch mit vergrößerter Schrift angezeigt. Ich möchte ja eben nicht, dass die vergrößerten Schriften in der Anwendung übertragen werden.´
Ergänzung: Wenn ich vom Form Scaled deaktiviere, sieht es gut aus. Aber ich kann das nicht für alle Forms machen. Einen einfacheren Weg gibt es nicht? |
AW: Windows Scaling für komplette Applikation deaktivieren
Ich habe hier kein 10.2 mehr, aber in 10.4 gibt es die Option GDI-Skalierung. Zwar habe das noch nicht verwendet, aber es könnte Window dazu veranlassen, die Skalierung selbst zu berechnen.
|
AW: Windows Scaling für komplette Applikation deaktivieren
Hallo,
reicht es nicht, dass in der jeweiligen Desktop-Verknüpfung auszuschalten? Eigenschaften/ Kompatibilität/ Button "Hohe DPI-Einstellungen ändern" und dort unten "Hohe DPI-Skalierung überschreiben -> Anwendung" Dazu müsstest Du dann ev. trotzdem noch "Scaled=False" in jedem Form setzen, und zwar direkt in der IDE (zur Laufzeit ist es zu spät). |
AW: Windows Scaling für komplette Applikation deaktivieren
Zitat:
Ansonsten dürfte es auf viel Handarbeit oder ein Tool hinauslaufen, um alle .dfm-Dateien anzupassen. Letzteres ist nicht weiter schwierig. |
AW: Windows Scaling für komplette Applikation deaktivieren
@361, Du schreibst, dass das Projekt eine eigene *.rc Datei verwendet.
Da lässt sich auch ein Manifest einbauen. Wenn Du möchtest, dass keine Skalierung stattfindet, dann sollte folgender Teil genügen (Die DPI Passage des Manifests aus der rc-Datei):
Code:
Bitte nicht über die führenden und abschließenden Anführungszeichen wundern. Diese sind erforderlich, wenn man zusätzlich zu den Versionsinfos auch das Manifest in einer selbst gepflegten Resourcedatei hat und der EMBA Resourcecompiler das umsetzen können soll.
// <!-- SetProcessDPIAware Function - xmlns:asmv3=\"urn:schemas-microsoft-com:asm.v3\" required in assembly -->
" <asmv3:application xmlns=\"urn:schemas-microsoft-com:asm.v3\">\15\12", " <asmv3:windowsSettings>\15\12", " <dpiAware xmlns=\"http://schemas.microsoft.com/SMI/2005/WindowsSettings\">false</dpiAware>\15\12", " <dpiAwareness xmlns=\"http://schemas.microsoft.com/SMI/2016/WindowsSettings\">unaware</dpiAwareness>\15\12", " <gdiScaling xmlns=\"http://schemas.microsoft.com/SMI/2017/WindowsSettings\">false</gdiScaling>\15\12", " </asmv3:windowsSettings>\15\12", " </asmv3:application>\15\12", Aber vielleicht ist eine Umstellung auf die Skalierung nicht so aufwändig. Dann natürlich ein anderes Manifest und evtl. hilft auch dieser Link mit der dort zu findenden Unit uStandardizeFonts: ![]() Der Aufruf jeweils in der Prozedur FormCreate mit "StandardizeFormFont(Self);" sollte klappen. |
AW: Windows Scaling für komplette Applikation deaktivieren
Hallo und guten Morgen.
Danke für Eure Antworten. Die Einstellung über die Programmverknüpfung möchte der Anwender nicht. @THY4243: Ich habe Deinen Code einmal in meine rc-Datei kopiert, aber der Compiler bemängelt folgendes:
Code:
Er markiert dabei Zeile:
[BRCC32 Error] ApplicationIcon.rc(2): Expecting resource name or resource type name
Code:
In meiner rc-Datei steht lediglich:
" <asmv3:application xmlns=\"urn:schemas-microsoft-com:asm.v3\">\15\12",
Code:
Was übersehe ich?
MAINICON ICON "Application.ico"
|
AW: Windows Scaling für komplette Applikation deaktivieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
das mit der Empfehlungen Scaled := False zu setzen ist ein Punkt, der schon genannt wurde und dem ich mich anschließe. Es gibt da noch zwei weitere Einstellungen, die im jeweiligen Form helfen können. AutoScroll := False und ParentFont:= False. Wegen der Resource / Manifestdatei - in der ZiP (Anlage) findet sich ein Beispiel, wie das aussieht. Die Versionierung muss dazu in der Delphi IDE ausgeschaltet sein und auch die DPI-Einstellungen. Wie die gewünscht *.rc Datei dann in der *.dpr einzubinden ist - siehe das Beispiel und auch den Hinweis von Uwe Raabe ![]() Wichtig ist, den Standardeintrag "{$R *.res}" auszukommentieren oder zu löschen. Die Kompatibilitätseinträge im Manifest "supportedOS" (Vista bis Windows 10) wirken sich auch bei der Abfrage der Windows-Version aus dem Programm heraus aus. Mit // am Zeilenanfang lassen diese Einträge sich auskommentieren, falls Seiteneffekte auftreten. In wie weit die Ansätze bei dem Projekt des Kunden helfen, hopefully. Vielleicht findet sich eine Kombination. |
AW: Windows Scaling für komplette Applikation deaktivieren
@THY4243: Hallo, ich habe es soeben getestet und damit hat es prima geklappt :-D Vielen Dank noch einmal für die tolle Hilfe.
|
AW: Windows Scaling für komplette Applikation deaktivieren
@361 - Gerne, freut mich, wenn es passt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:25 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