Wenn ich unter Windows 10 die dpi hochsetze
Einstellungen -> Anzeige -> Bildschirm/Anzeige anpassen -> Ändern der Größe von apps, Text und andere Elemente -> 150%
und in Delphi die Form-Eigenschaft
Scaled=True setze, wird das Fenster meiner Anwendung groß dargestellt.
So möchte ich es auch haben. Meine Anwendung soll auch auf Monitoren mit hoher Auflösung gut erkennbar sein.
Ich möchte dem Nutzer meiner Anwendung aber die Wahl lassen und habe eine CheckBox eingebaut, mit der man die Skalierung zur Laufzeit ein- und ausschalten kann.
Leider funktioniert es zur Laufzeit nicht. Die Skalierung meiner Anwendung ändert sich nur, wenn ich zur Entwurf-Zeit im Object Inspector
Scaled auf
True bzw.
False setze, meine Anwendung neu kompiliere und neu starte.
Selbst ein
Form1.Scaled:=true bzw.
Form1.Scaled:=false in
TForm1.FormCreate wird nicht berücksichtigt. Windows 10 schaut nur, was im Object Inspector steht...
Hat jemand eine Idee, wie man die Anwendung dazu zwingt, sich zur Laufzeit neu zu skalieren?
Im Manifest habe ich die Windows 10-ID hinzugefügt und auch dpiAware auf True gesetzt:
Code:
<?
xml version="1.0" encoding="utf-8" ?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-
com:
asm.v1" xmlns:asmv1="urn:schemas-microsoft-
com:
asm.v1" xmlns:asmv2="urn:schemas-microsoft-
com:
asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-
com:
asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-
com:
asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-
com:compatibility.v1">
<application>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-
com:
asm.v3">
<asmv3:windowsSettings
xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>True/PM</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</asmv1:assembly>