Seite 2 von 2

Re: Anpassung an 2K bzw. 4K Monitore?

Verfasst: Di, 13. Apr 2021 23:58
von Martin Altmann
Hast du auch an die restlichen Eintragungen in der manifest gedacht?
Es gibt das ein Wert pro Windowsversion (supportedOS), die unterstützt werden soll - findest du auch hier im Forum.
Zum Beispiel: viewtopic.php?f=32&t=9582&p=109287&hili ... OS#p109287
Eine aktuelle Übersicht der gültigen GUIDs findest du hier: https://docs.microsoft.com/de-de/window ... -manifests

Viele Grüße,
Martin

Re: Anpassung an 2K bzw. 4K Monitore?

Verfasst: Mi, 14. Apr 2021 2:18
von AUGE_OHR
hi,

es scheint ein Missverständnis zu geben was DPI (Hardware) und DPIaware (Software) angeht

--- DPI Hardware

mein alter 19" Dell 4:3 Monitor hatte 1600 x 1200 und der 22" 16:9 Monitor 1920 x 1200
mein 2K (2560 x 1440) Monitor hat die selbe "Pixel-Dichte" aber ist 32"

auf allen 3 Monitoren ist "Solitär" ( XP Version ) gleich gross in mm und Pixel wobei immer 100% Skalierung läuft

ich hab dann noch ein 10" Table PC was Full-HD 1920 x 1050 macht aber da ist "Solitär" viel keiner.
Klar auf einem 10" ist die "Pixel-Dichte" = DPI (Hardware) viel grösser als bei 22"

--- Windows Skalierung

wenn man die Windows Skalierung nutzt wird alles grösser ... ausser was DPIaware ist wie "Solitär"
DPIaware bedeutet "nur" das genau 1 Pixel = 1 Pixel "native" ist :!:

wenn man 2 Monitor nebeneinander hat mit verschiedener DPI/Skalierung und eine App zwischen beide liegt dann sieht man den Unterschied.

das passiert NICHT mit DPIaware und WENN der Monitor die selbe "Pixel-Dichte" = DPI (Hardware) hat

---

hier setzt nun der "interne" xBase Zoom Faktor an zusammen (!) mit DPIaware.

es spielt dann keine Rolle ob der User die Windows Skalierung aktiviert hat (DPIaware) sondern welche Grösse (Zoom) der User für die App gewählt hat.

---

ich gehe nun vom Font aus welchen der User wählen kann.
als "Referenz" dient nun ein langen String mit "WgÖ ..." möglichst breit,tief,hoch und GraQueryTextBox() für den X,Y Zoom Faktor

allgemein nutze ich den o:resize Callback Slot .. für JEDES Fenster

Code: Alles auswählen

   DrawingArea:resize := {| aOldSize, aNewSize, oSelf | MyResize(aOldSize, aNewSize, oSelf) }

PROCEDURE MyResize(aOldSize, aNewSize, oSelf)
....
   oSelf:lockUpdate( .T. )
   aChild := oSelf:Childlist()
   kMax := LEN( aChild )
   FOR k := 1 TO kMax
       aChild[k]:SetPos( {aLayOut[k][POSX]* SP_nXFaktor(),;
                          aLayOut[k][POSY]* SP_nYFaktor() }) 
       aChild[k]:SetSize( {aLayOut[k][SIZEX]* SP_nXFaktor(),;
                           aLayOut[k][SIZEY]* SP_nYFaktor() })                                  
       aChild[k]:setFont(aLayOut[k][FONT])
       IF LEN(aChild[k]:Childlist()) > 0
          // evtl rekursive
       ENDIF
   NEXT
   oSelf:lockUpdate( .F. )
...
RETURN
wie man sieht nutze ich ein Array mit den "Original" Daten nach dem o:Dialog:Create()
ähnlich wie beim Resize nutze ich o:Childlist() um die XbParts "einzusammeln"

"das" macht auch der LayoutManager() von Xbase++ ...
hier das Demo was wir von Till 2015 (?) bekommen haben
Layout Manager.zip
(75.77 KiB) 157-mal heruntergeladen

Re: Anpassung an 2K bzw. 4K Monitore?

Verfasst: Mi, 14. Apr 2021 10:32
von Wolfgang_B
ich habe jetzt mal alles durchprobiert, ohne Erfolg. Es ändert sich nichts.
Wenn ich das Manifest von "peternmb (120.01.2017 - ManifestdDatei)" verwende, kommt eine Fehlermeldung:

Code: Alles auswählen

Diese Anwendung konnte nicht gestartet werden, da die Side-by-Side-Konfiguration ungültig ist. Weitere Informationen finden Sie im Anwendungsereignisprotokoll. Weitere Details können auch mit dem Befehlszeilentool sxstrace.exe angezeigt werden.
Generelle Frage:
Wie kann man den feststellen, ob ein Manifest vom Programm verwendet wird?

Re: Anpassung an 2K bzw. 4K Monitore?

Verfasst: Mi, 14. Apr 2021 11:06
von Marcus Herz
Am besten in der ARC mitlinken:

Code: Alles auswählen

#define MANIFEST_RESID 	1
#define MANIFEST 		24

USERDEF MANIFEST
MANIFEST_RESID = FILE "resource\meineApp.exe.manifest"

Re: Anpassung an 2K bzw. 4K Monitore?

Verfasst: Mi, 14. Apr 2021 14:59
von Wolfgang_B
Problem offensichtlich gelöst.

Es gibt Unterschiede in der manifest datei:

Auszugsweise Alte Version:

Code: Alles auswählen

  <asmv3:application>

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

Code: Alles auswählen

 
	<asmv3:application  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >

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


Re: Anpassung an 2K bzw. 4K Monitore?

Verfasst: Do, 15. Apr 2021 10:58
von Wolfgang_B
Hatte ich gestern im Eifer ganz vergessen.

Herzlichen Dank an Georg und Manfred für die tel. und Teamv. Hilfe!!!