Anpassung an 2K bzw. 4K Monitore?

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag 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
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

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

Beitrag 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) 155-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

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

Beitrag 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?
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

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

Beitrag 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"
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

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

Beitrag 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>

Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

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

Beitrag von Wolfgang_B »

Hatte ich gestern im Eifer ganz vergessen.

Herzlichen Dank an Georg und Manfred für die tel. und Teamv. Hilfe!!!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Antworten