Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hochauflösende Bildschirme (https://www.delphipraxis.net/197931-hochaufloesende-bildschirme.html)

Walter Landwehr 19. Sep 2018 12:44

Hochauflösende Bildschirme
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo liebe Delphianer,

ich habe ein riesen Problem mit der Bildschirmauflösung und Schriften > 100%.

Ich musste meinen Rechner neu installieren und habe dann mein Projekt geöffnet. Habe ein Update beim Kunden gemacht der einen Mac mit Paralleles hat. Ich habe an den Projekteinstellungen nichts verändert und nun kann er das Programm nicht mehr nutzen siehe Grafiken (siehe Anhang)
Auflösung beim Kunden 2241 x 1280, 125 % Schrift. Ich habe schon alles mögliche mit den Projekteinstellungen (Hochauflösung aktivieren und bei den Forms scaled auf True gesetzt.) Aber nichts funktioniert. Hat jeman noch ein Lösungsansatz, denn vorher also vor Neuinstallation funktionierte alles reibungslos.
Bitte um Hilfe. Danke.

EWeiss 19. Sep 2018 12:52

AW: Hochauflösende Bildschirme
 
Stimmen die Einstellungen im Manifest?
DPIAware

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

Rolf Frei 19. Sep 2018 12:57

AW: Hochauflösende Bildschirme
 
Ohje, das sieht übel aus. Wie hast du deine Anwendung vorher entwickelt? Mit 96 DPI (100%) und nun hast deinen neuen PC auf was anderes eingestellt oder nutzt du nachwievor 100% (96 DPI), also Standard? Welche Delphiversion? Ist DPIAware in den Anwendungsoptionen DPIAware ein/aus? Wie sieht es aus, wenn der Kunde auf 100% stellt?

Walter Landwehr 19. Sep 2018 13:06

AW: Hochauflösende Bildschirme
 
wo finde ich Manifest?

Walter Landwehr 19. Sep 2018 13:09

AW: Hochauflösende Bildschirme
 
Hallo Rolf,

ist der gleiche Rechner wie vorher, nur neu installiert. Schrift 100% beim Kunden funktioniert, nur nicht mehr lesbar, zu klein.
Bei mir 100 % 96 dpi. (Standard)

EWeiss 19. Sep 2018 13:12

AW: Hochauflösende Bildschirme
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1413612)
wo finde ich Manifest?

In deiner Exe ein kompiliert wenn überhaupt ;)
Siehe Anhange.
Manifest Hochauflösung aktivieren.

gruss

Walter Landwehr 19. Sep 2018 13:19

AW: Hochauflösende Bildschirme
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ist bei mir so eingestellt.

Uwe Raabe 19. Sep 2018 13:20

AW: Hochauflösende Bildschirme
 
Dann nimm doch mal den Haken bei Hochauflösung aktivieren weg. Wie sieht es dann aus?

Walter Landwehr 19. Sep 2018 13:26

AW: Hochauflösende Bildschirme
 
Hallo Uwe, habe ich gemacht, sieht genauso so Sch... aus.

Walter Landwehr 19. Sep 2018 13:27

AW: Hochauflösende Bildschirme
 
wo gebe ich denn den Code DPIAware ein?

EWeiss 19. Sep 2018 13:31

AW: Hochauflösende Bildschirme
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1413626)
wo gebe ich denn den Code DPIAware ein?

Das macht Delphi für dich wenn Hochauflösend aktiviert ist.
Und das Manifest in die EXE kompiliert wird.

Verwende ResourceHacker und schau dir deine EXE damit an.

gruss

samso 19. Sep 2018 14:14

AW: Hochauflösende Bildschirme
 
Hallo Walter Landwehr, könntest Du den ersten Screenshot jetzt löschen? Da scheint mir eine Datenschutzproblem vorzuliegen.

Walter Landwehr 19. Sep 2018 14:30

AW: Hochauflösende Bildschirme
 
Das steht bei mir im Manifest.
Delphi-Quellcode:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>True/PM</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <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>
      <!--The ID below indicates app support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates app support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
      <!--The ID below indicates app support for Windows 8 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
      <!--The ID below indicates app support for Windows 8.1 -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
      <!--The ID below indicates app support for Windows 10 -->
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>         
   </application>
</compatibility>
</assembly>

Uwe Raabe 19. Sep 2018 14:36

AW: Hochauflösende Bildschirme
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1413624)
Hallo Uwe, habe ich gemacht, sieht genauso so Sch... aus.

Check doch mal, ob der Haken in der verwendeten Build-Konfiguration nicht doch noch gesetzt ist. Ein gesetzter Haken kann zwar in den Konfigurationen vererbt werden, ein nicht-gesetzter aber leider nicht.

Enable High DPI cannot be disabled while enabled in higher build configuration

EWeiss 19. Sep 2018 14:37

AW: Hochauflösende Bildschirme
 
Hmm laut dem Manifest scheint es aktiviert zu sein.
Zitat:

<dpiAware>True/PM</dpiAware>
Wenn es um das false geht und es nicht gesetzt wird kann er doch sein eigenes Manifest einbinden.
Und es von Hand auf false setzen.

gruss

Walter Landwehr 19. Sep 2018 14:48

AW: Hochauflösende Bildschirme
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Uwe, habe alle Einstellungen durchprobiert. Es geht einfach nicht. Ich Frage mich nur warum es vorher ging, ich habe ja an den Projekteinstellungen nichts verändert.
oder fehlt mir da eventuell ein Patch für Delphi 10.1?

Walter Landwehr 19. Sep 2018 15:01

AW: Hochauflösende Bildschirme
 
Ich habe jetzt mal das manifest mit einer älteren exe verglichen, die ist völlig identisch mit der neuen exe.

Uwe Raabe 19. Sep 2018 15:03

AW: Hochauflösende Bildschirme
 
Mach doch mal eine neue, simple VCL-Anwendung und probier aus, ob das geht. Dann nach und nach die verschiedenen Control-Typen hinzufügen, die du in deiner Anwendung verwendest.

Walter Landwehr 19. Sep 2018 15:14

AW: Hochauflösende Bildschirme
 
Hallo Uwe, das geht nicht, da ich keinen 4K Monitor habe, ich bin da immer auf die Kunden angewiesen und die nervt jetzt schon das ich dauernd störe. Die Anwendung ist auch recht groß, die ist schon mit Delphi 1 angefangen worden. Ich würde Wochen (Monate) brauchen um das nachzuvollziehen.

scrat1979 19. Sep 2018 15:17

AW: Hochauflösende Bildschirme
 
Mit Rechtsklick auf die EXE -> Eigenschaften. Bei Kombatibilität gibt es Einstellungen für High-DPI. Hat mir schön öfters ein „versautes“ Layout bei älteren Anwendungen behoben. Vielleicht einen Versuch wert...

Hoffe du bekommst das schnell hin :thumb:

CCRDude 19. Sep 2018 15:18

AW: Hochauflösende Bildschirme
 
Du brauchst keinen 4K-Schirm, Du kannst die Auflösung an jedem System ändern. Ich teste auch, indem ich mein lokales System mal auf 150% oder 200% hochdrehe.

Rechtsklick Desktop - Display Settings - Scale and layout -> Advanced scaling settings -> custom scaling.

Dann wird alles arg groß, zum Testen ist's aber wunderbar, zur Not in ner VM.

EWeiss 19. Sep 2018 15:22

AW: Hochauflösende Bildschirme
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1413660)
Hallo Uwe, das geht nicht, da ich keinen 4K Monitor habe, ich bin da immer auf die Kunden angewiesen und die nervt jetzt schon das ich dauernd störe. Die Anwendung ist auch recht groß, die ist schon mit Delphi 1 angefangen worden. Ich würde Wochen (Monate) brauchen um das nachzuvollziehen.

Verstehe das Problem nicht.
Es geht um die *.dfm

Öffne dein Projekt selektiere alle Controls die auf der Form sind kopiere diese und paste sie in einem neuen Projekt auf die Form.
Danach testest du ganz einfach das neue Projekt ob DPI funktioniert.

Dafür brauchst du keine einzige zeile Code.
Mache dann ein Backup deiner alten *.dfm und kopiere die neue in den Pfad des alten Projekt.

gruss

Walter Landwehr 19. Sep 2018 15:35

AW: Hochauflösende Bildschirme
 
Ok werde ich morgen testen.

Aber eine Frage noch ich verwende 2 Monitore, kann das Probleme verursachen?. Windows 10 lässt nicht zu die Anzeige zu skalieren. Also werde ich es mal auf einen anderen Rechner testen.

Berichte dann.

TigerLilly 20. Sep 2018 08:13

AW: Hochauflösende Bildschirme
 
Versuche doch, das Problem auf deinem Rechner zu reproduzieren, wie unten beschrieben (Skalierung).

Hast du im Code irgendwo ein ScaleBy(), das dafür verantwortlich sein könnte?

Noch was: Ich hatte das umgekehrte Problem (Schrift extrem klein), da half es, die DPI Skalierung in den Eigenschaften anders einzustellen, aber(!) auf meinem Surface halfen andere Einstellungen als auf meinem Desktop. Wenn möglich würde ich da beim Kunden alle Einstellungen durchprobieren.

Welche Delphi Version ist das eigentlich?

Walter Landwehr 20. Sep 2018 08:37

AW: Hochauflösende Bildschirme
 
siehe #16

ScaleBy kommt nicht vor.

Walter Landwehr 20. Sep 2018 09:02

AW: Hochauflösende Bildschirme
 
Ich glaube ich komme der Sache etwas auf den Grund. Ich habe als einzige Änderung die TMS Komponenten upgedatet. Es betrifft auch nur die TMS Komponenten die dieses verursachen. Ich werde mal die Hotline von TMS kontaktieren, ob dort etwas bekannt ist.

TiGü 20. Sep 2018 09:52

AW: Hochauflösende Bildschirme
 
Check mal, ob in der XML der DPROJ-Datei wirklich
Code:
<AppEnableHighDPI>false</AppEnableHighDPI>
steht.

Ich hatte gerade erst bei einer unserer alten Anwendungen das Problem, dass die Änderung an dieser Einstellung aus den Projektoptionen nicht ins DPROJ-XML übernommen wurden und ich darum das XML manuell anpassen musste.
Es scheint mir ein Bug innerhalb der IDE bzw. Projektoptionen-Dialog zu sein.

Da es immer auf True stand, war auf meinen 4K Monitor mit 150% auch alles an Schrift innerhalb der Komponenten vergrößert.
Erst nach dem Ändern auf False sah die Anwendung wieder manierlich aus.

EDIT: Beitrag mit weiteren Informationen zum besseren Verständnis ergänzt.

Walter Landwehr 20. Sep 2018 10:10

AW: Hochauflösende Bildschirme
 
Bei mit steht dies drin:

<AppEnableHighDPI>true</AppEnableHighDPI>

Soll das True oder False sein?

TiGü 20. Sep 2018 10:16

AW: Hochauflösende Bildschirme
 
False! Händisch per Editor ändern und dann ausprobieren!

Walter Landwehr 20. Sep 2018 10:38

AW: Hochauflösende Bildschirme
 
Hmm, das scheint zu funktionieren, jetzt muss ich noch testen ob diese Einstellung so bleibt.

Walter Landwehr 20. Sep 2018 10:45

AW: Hochauflösende Bildschirme
 
Jetzt ist in den Projektoptionen aber Hochauflösend deaktiviert. Jetzt muss ich nochmals auf einen Retina Bildschirm testen.

sh17 20. Sep 2018 10:55

AW: Hochauflösende Bildschirme
 
Wenn Deine Anwendung (noch) nicht mit hochauflösend klar kommt, sollte es auch deaktiviert bleiben.

Uwe Raabe 20. Sep 2018 12:09

AW: Hochauflösende Bildschirme
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1413713)
Jetzt ist in den Projektoptionen aber Hochauflösend deaktiviert.

Die Option "Hochauflösung aktivieren" muss man lesen als:
Zitat:

Hallo Windows! Meine Anwendung kann mit hohen Auflösungen umgehen. Unterlass bitte sämtliche Skalierungen und teile mir die tatsächliche Auflösung der Bildschirme mit.
während das deaktivieren dieser Option ungefähr sowas bedeutet:
Zitat:

Hallo Windows! Ich kann nur mit der Standardauflösung von 96 DPI etwas anfangen. Höhere Auflösungen sind mir einfach zu kompliziert. Gaukle mir einfach vor es gäbe nur 96 DPI Monitore und übernimm das Skalieren bitte selbst.

Walter Landwehr 20. Sep 2018 17:26

AW: Hochauflösende Bildschirme
 
Vielen Dank an alle die sich hier beteiligt haben. Ich denke das Problem ist behoben.

TigerLilly 20. Sep 2018 20:24

AW: Hochauflösende Bildschirme
 
Wir haben uns die Mühe gemacht, über dein Problem nachzudenken. Dann wäre es wohl angebracht, dass du dir die Mühe machst, uns die Lösung mitzuteilen. Meinst du nicht?

EWeiss 20. Sep 2018 20:34

AW: Hochauflösende Bildschirme
 
Zitat:

Zitat von TigerLilly (Beitrag 1413766)
Wir haben uns die Mühe gemacht, über dein Problem nachzudenken. Dann wäre es wohl angebracht, dass du dir die Mühe machst, uns die Lösung mitzuteilen. Meinst du nicht?

Rege dich doch nicht so künstlich auf.. was bringt das?
Er hat DPIAware deaktiviert.. das ist die Lösung was möchtest du noch.

gruss

Luckie 20. Sep 2018 21:19

AW: Hochauflösende Bildschirme
 
Ganz unrecht hat er nicht. Wäre schon schön zu wissen, welcher Tipp jetzt die Lösung gebracht hat.

TiGü 21. Sep 2018 08:15

AW: Hochauflösende Bildschirme
 
Die Beiträge #27 bis #31 sollten euch weiterhelfen. :roll:

TigerLilly 21. Sep 2018 09:02

AW: Hochauflösende Bildschirme
 
Ich denke, es ist guter Stil, zu sagen, was schlussendlich die Lösung war. Dann muss jemand, der dasselbe Problem hat, nicht den ganzen Thread durchackern.

Walter Landwehr 25. Sep 2018 12:53

AW: Hochauflösende Bildschirme
 
Also ich musste noch testen. Ich habe zwar Hochauflösend deaktiviert aber das ist nicht die Lösung. Wenn ich dann wieder auf 125% Schriftgröße stelle habe ich wieder diese verunstalteten Fenster.
Ich hatte vor der Neu Installation auch Hochauflösend aktiviert und alle war gut. Ich warte mal was TMS mir dazu sagt, es betrifft eigentlich nur TMS Komponenten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 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