AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Windows Scaling für komplette Applikation deaktivieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Scaling für komplette Applikation deaktivieren

Ein Thema von 361 · begonnen am 22. Nov 2021 · letzter Beitrag vom 24. Nov 2021
Antwort Antwort
Seite 1 von 2  1 2      
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 15:32
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

Geändert von 361 (22. Nov 2021 um 15:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 15:42
In den Projektoptionen unter "Anwendung - Manifestdatei" den Haken bei "Hochauflösung aktivieren" entfernen, unter meinst Du etwas anderes?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 15:43
Hi,

mein Nachtrag hat sich zeitlich mit Deiner Antwort überschnitten. Das habe ich schon deaktiviert. Trotzdem wird die Anwendung immer skaliert angezeigt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 15:46
Hast Du auf die Build-Konfiguration geachtet? Man kann/muss das für Debug und Release jeweils getrennt einstellen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 15:51
Hi,

ja diese sind alle deaktiviert. Das Projekt nutzt eine rc-Datei, muss dort vielleicht irgendwas noch eingestellt werden?
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 15:53
...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?

Geändert von 361 (22. Nov 2021 um 15:59 Uhr)
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#7

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 16:44
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.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 18:02
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).
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.613 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 18:28
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?
Falls Deine Forms alle von einem gemeinsamen Form abgeleitet sind, kannst Du dort in der Methode Loaded Scaled := False setzen. Das wäre früh genug.

Ansonsten dürfte es auf viel Handarbeit oder ein Tool hinauslaufen, um alle .dfm-Dateien anzupassen. Letzteres ist nicht weiter schwierig.
Thomas Mueller
  Mit Zitat antworten Zitat
THY4243

Registriert seit: 15. Dez 2012
Ort: München - Untermenzing
44 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Windows Scaling für komplette Applikation deaktivieren

  Alt 22. Nov 2021, 20:33
@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:
  // <!-- 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",
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.

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: https://pastebin.com/dKpfnXLc
Der Aufruf jeweils in der Prozedur FormCreate mit "StandardizeFormFont(Self);" sollte klappen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:30 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