Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Windows 10 HighDPI (https://www.delphipraxis.net/197324-windows-10-highdpi.html)

hoika 30. Jul 2018 20:14

Windows 10 HighDPI
 
Hallo,
also irgendwie bekomme ich das nicht hin.

https://www.helpandmanual.com/downloads_delphi.html
Dort gibt es eine Tutorial für HighDPI.

aber egal, was ich mache

Label1.Caption:= IntToStr(Screen.PixelsPerInch);

Es wird immer 96 angezeigt.

Das folgende Manifest habe von der Seite.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<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>
<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>
</assembly>


Ich nenne meine Manifest-Datei für projekt1.exe dann einfach projekt1.exe.manifest.
Die Datei wird aber nicht erkannt.
Immer steht im Label 96.
Was muss ich denn noch machen??

EWeiss 30. Jul 2018 20:25

AW: Windows 10 HighDPI
 
Logisch oder? PixelsPerInch sind nun mal 96..
Du solltest die DPI schon berechnen.. ;)

Und wunder es hat nichts mit WIn10 zu tun.

gruss

hoika 30. Jul 2018 20:28

AW: Windows 10 HighDPI
 
Hallo,
deaktiviere ich unter Projekt-Optionen die Laufzeit-Themes, klappt es bei einem neuen Projekt.
Bei 125% ergibt das PixelsPerInch=120 (96*1.25) wie erwartet.

Bei meinem anderen existierenden Projekt bekomme ich immer 96, egal, was ich unter Windows für eine Skalierung einstelle.

Das hatte ich schon mal bei einem anderen Projekt.
Muss wohl die DPROJ wieder neu erzeugen ;(


Was meinst Du mit berechnen?
Genau das machte bis Windows8.1 (da ging der Murks los) das Screen.PixelPerInch immer selber.
Ab dem Zeitpunkt ging das mit dem Manifest los, um Windows daran zu hindern, selber zu skalieren,
was meistens sehr vermurkst aussieht.

Dalai 30. Jul 2018 20:39

AW: Windows 10 HighDPI
 
Zitat:

Zitat von hoika (Beitrag 1409152)
deaktiviere ich unter Projekt-Optionen die Laufzeit-Themes, klappt es bei einem neuen Projekt.

Logisch. Die Aktivierung der Option Laufzeit-Themes sorgt für ein Einbetten eines Manifests in das Kompilat. Die Standardeinstellung von Windows ist, externe Manifeste zu ignorieren, wenn es bereits ein eingebettetes gibt. Deswegen erstellt man in vielen Fällen ein eigenes Manifest und bindet selbiges ein und lässt die Option Laufzeit-Themes deaktiviert.

Grüße
Dalai

EWeiss 30. Jul 2018 20:39

AW: Windows 10 HighDPI
 
sorry hatte Screen.. davor übersehen.
Denke wenn du mal suchst bsp.
https://stackoverflow.com/questions/...ows-use-medium

wirst du etwas finden woran es liegen könnte.
Ich berechne das Ratio immer selbst.

bsp.
ratio := GetDeviceCaps(PaintBox.Canvas.Handle, LOGPIXELSX) / 96.0;

Zitat:

Logisch. Die Aktivierung der Option Laufzeit-Themes sorgt für ein Einbetten eines Manifests in das Kompilat
:thumb::thumb::thumb:
Das wird es wohl sein!

gruss

hoika 30. Jul 2018 21:04

AW: Windows 10 HighDPI
 
Hallo,
ja, deaktiviere ich die Laufzeitthemes bei einem neuen Projekt, klappt das.
Mein existierendes grosses Projekt zeigt immer 96 an trotz deaktivierten Laufzeitthemes.

EWeiss 30. Jul 2018 21:16

AW: Windows 10 HighDPI
 
Zitat:

Zitat von hoika (Beitrag 1409156)
Hallo,
ja, deaktiviere ich die Laufzeitthemes bei einem neuen Projekt, klappt das.
Mein existierendes grosses Projekt zeigt immer 96 an trotz deaktivierten Laufzeitthemes.

Hmm.. hast du dann auch in diesen dein Manifest hinzugefügt?
In deiner Ressource und deaktivierter Laufzeittheme.

gruss

KodeZwerg 30. Jul 2018 21:56

AW: Windows 10 HighDPI
 
Schau doch mal in die .exe rein, Resource Explorer liegt Delphi ja bei, welches Manifest hat die .exe drinn?

hoika 30. Jul 2018 22:08

AW: Windows 10 HighDPI
 
Hallo,
liegt wohl am IBDAC, der bringt ein Dummy-Manifest mit,
so ein Blödsinn!!!

KodeZwerg 30. Jul 2018 23:02

AW: Windows 10 HighDPI
 
Zumindest weißt Du jetzt woran es liegt, ist doch auch was Wert :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.
Seite 1 von 2  1 2      

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