AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VCL-Form wird nicht skaliert, obwohl Scaled = True

Ein Thema von Harry Stahl · begonnen am 25. Mai 2015 · letzter Beitrag vom 27. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#1

VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 12:58
Ich habe mir ein Surface Pro 3 gekauft, das hat ja eine ziemlich hohe Bildschirmauflösung, daher habe ich die Systemskalierung auf 175% gestellt, damit das alles noch gut lesbar ist.

Bei 2 meiner Programme werden die Forms nicht skaliert, obwohl alle die Einstellung "scaled = True" haben. Die Programme hatte ich von XE nach XE7 übernommen. Die XE-Versionen werden richtig skaliert.

Ich habe allerdings auch andere XE7-Programme, die ich entweder übernommen oder neu erstellt habe, wo alles richtig skaliert wird.

Ich bin hier im Moment ziemlich ratlos. Hat jemand evtl. mal vor einem ähnlichen Problem gestanden und hat einen Tipp für mich?
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 15:20
Ergänzung: Wenn man unter Windows in den Kompatibilitätseinstellungen die Option "Skalierung bei hohem DPI-Wert deaktivieren" aktiviert, dann werden zumindest die Schriften halbwegs richtig in der Größe skaliert angezeigt.

Die Grafiken werden allerdings nicht skaliert, bleiben also klein, das sieht schon etwas seltsam aus.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 15:21
Schau dir mal die Manifestsektion in der Exe an? Je nach Eintrag für Kompatiblität oder "ich kann Skalieren" verhält sich die Exe anders.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 15:30
Das sind die Manifest-Einstellungen, bis auf die Programmnamen identisch mit einer anderen Manifest-Datei, wo es beim Programm aber wie gewünscht funktioniert:
Delphi-Quellcode:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="PC-Notizz.exe"
     type="win32"/>

  <description>Hastasoft PC-Notizz!</description>
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <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}"/>
        </application>
    </compatibility>

  <dependency>
  <dependentAssembly>
  <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
  </dependentAssembly>
  </dependency>
</assembly>
Gibt es etwas, was ich hier ändern muss? Welcher Parameter sagt denn genau etwas über die Skalierung aus?
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
744 Beiträge
 
#5

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 16:11
Welcher Parameter sagt denn genau etwas über die Skalierung aus?
Müsste
Code:
<dpiAware>
sein.

Siehe hier.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.124 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 16:23
Mit <dpiAware> sagt man Windows, ob das Programm mit hochauflösenden Displays klar kommt und nicht (von Windows) skaliert werden muß.

Was für eine DPI ist denn bei deiner Form eingestellt?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Mai 2015 um 16:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 19:51
Mit DPI-Wert meinst Du wahrscheinlich PixelsPerInch? Das sind 96, halt die Größe zur Entwicklungszeit.

Ich habe das Manifest nun mal mit dem DPI-Aware Punkt ergänzt, aber egal, ob ich dort true oder false setze, es wird nicht skaliert.

Code:
 <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="PC-Notizz.exe"
     type="win32"/>

  <description>Hastasoft PC-Notizz!</description>
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="AsInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>

<asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application>

  <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}"/>
        </application>
    </compatibility>

  <dependency>
  <dependentAssembly>
  <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"    publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
  </dependentAssembly>
  </dependency>
</assembly>
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 20:14
OK, musste den Eintrag etwas anders machen, so funktioniert es nun:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="PC-Notizz.exe"
     type="win32"/>

  <description>Hastasoft PC-Notizz!</description>
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="AsInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>

<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>false</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>

  <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}"/>
        </application>
    </compatibility>

  <dependency>
  <dependentAssembly>
  <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"    publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
  </dependentAssembly>
  </dependency>
</assembly>
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.124 Beiträge
 
Delphi 12 Athens
 
#9

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 20:24
PS: Hier im Forum suchenManifest-Creator (falls du öfters mal deine Manifeste falsch zuammenbaust )
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: VCL-Form wird nicht skaliert, obwohl Scaled = True

  Alt 25. Mai 2015, 21:03
So, abschließend noch ein Dankeschön für die Hinweise.

Himitsu, Dein Tool macht einen guten Eindruck. Auf jeden Fall sehr praktisch, dass man sich die Erläuterungen auch noch zu den einzelnen Einstelldingen ansehen kann, z.B. auch hier gut für DPI-Aware.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:13 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