Page 1 sur 1

Dpi

Publié : ven. 20/mars/2020 6:27
par microdevweb
Bonjour à tous,

Sur le forum Anglais il ma été relaté que ma table pouvais souffrir d'un problème de DPI. Comme ceci

Image

Le problème est que même si je change l’échelle de mon affichage, je n'arrive pas reproduire l'erreur. Cela vient du dimensionnement de mon image je penses.

Dans mon cas j'ai deux moniteurs,
1920 x 1080 150% et
1366 x 768 100%

Merci d'avance pour vos conseils

Re: Dpi

Publié : ven. 20/mars/2020 7:17
par Naheulf
Je n'ai pas encore eu de problème de DPI (mon écran et trop petit) mais essaye de sélectionner l'écran FullHD (1080p) comme écran principal. Ça te permettra peut être de pouvoir reproduire le problème.

Re: Dpi

Publié : ven. 20/mars/2020 8:41
par Micoute
C'est curieux, car chez moi avec mon écran 2560 x 1080 à 100%, ça a tendance à agrandir les fenêtres et images, tandis qu'avec celui de 1920 x 1080 100% aussi, ça ne modifie rien du tout, j'ai fait une petite routine :

Code : Tout sélectionner

ExamineDesktops()

Global.d Coeff_L, Coeff_H , LargEcr = DesktopWidth(0), HautEcr = DesktopHeight(0)

If LargEcr >= 1920
  Coeff_L = 1 / (LargEcr / 1920)
ElseIf LargEcr < 1920
  Coeff_L = 1920 / LargEcr
EndIf  

If HautEcr >= 1080
  Coeff_H = 1 / (HautEcr / 1080)
ElseIf HautEcr < 1080
  Coeff_H = 1080 / HautEcr
EndIf
et comme ça plus de problème.

Re: Dpi

Publié : ven. 20/mars/2020 9:21
par microdevweb
merci Micoute,

Je vais regardé à cela

Re: Dpi

Publié : ven. 20/mars/2020 11:31
par G-Rom
J'ai le même "soucis" que ton screen plus haut, il faut que tu actives dans tes options de compilation "Activer le facteur d'échelle d'affichage DPI"
il faut surement que tu joue avec DesktopScaledX() & DesktopScaledY() pour une mise à l'échelle correct. j'ai essayer de regarder ton code, j'ai abandonné :mrgreen:

Re: Dpi

Publié : ven. 20/mars/2020 13:49
par microdevweb
@G_room,

J'ai changé certaine chose, si tu peut réessayé (avec l'option Afficher le facteur d'échelle et d’affichage)

Merci

Re: Dpi

Publié : ven. 20/mars/2020 14:07
par Micoute
Avec l'exemple que j'ai donné, il ne faut pas oublier de diviser les dimensions des différents gadgets par Coeff_L pour les largeurs et par Coeff_H pour les hauteurs, par exemple:

Code : Tout sélectionner

OpenWindow(#Fenetre_Init, 0, 0, 810/Coeff_L, 600/Coeff_H, "Initialisation", #PB_Window_BorderLess|#PB_Window_ScreenCentered)

Re: Dpi

Publié : ven. 20/mars/2020 14:20
par Ollivier
@microdevweb

Tu devrais essayer le latin pour le nom des éléments dans tes codes.
Le latin complet, comme ceci :

Code : Tout sélectionner

ExamineDesktops()
LucisAedificiumTitubandinis = DesktopWidth(0)
LucisAedificiumMagnitudinis = DesktopHeight(0)

Re: Dpi

Publié : ven. 20/mars/2020 14:31
par G-Rom
cela fonctionne mieux.

Re: Dpi

Publié : ven. 20/mars/2020 15:13
par Micoute
G-Rom a écrit :cela fonctionne mieux.
Cela va sans dire.

Re: Dpi

Publié : ven. 20/mars/2020 18:12
par G-Rom
Micoute a écrit :
G-Rom a écrit :cela fonctionne mieux.
Cela va sans dire.
heu... je répondais a microdevweb.

Re: Dpi

Publié : sam. 21/mars/2020 8:26
par Micoute
C'est ce que je pensais aussi.

Re: Dpi

Publié : sam. 21/mars/2020 11:38
par Ar-S
Avant de dessiner ta table, essaye de convertir tes dimensions via le DesktopResolutionX()ou DesktopScaledX()

Un truc comme ça est un peu lourd mais ça doit passer non ? (je suis en facteur 1 j'ai pas plus testé que ça)

Code : Tout sélectionner

Enumeration
  #WIN
  #CANV
EndEnumeration



Global DP.d = DesktopResolutionX()
Debug "Facteur de zoom : " + DP


; DP.d = 1.25
;Debug "Facteur de zoom : 1.25"



Structure DPIconv
  ID.i
  W.i
  H.i
EndStructure

Global NewList IDE.DPIconv()


; Macros pour simplifier l'ajout des valeurs dans la liste structurée
Macro AddTOOL(nID,Nw,Nh)
  AddElement ( IDE.DPIconv() )
  IDE()\ID = nID
  IDE()\W = Nw/DP
  IDE()\H = Nh/DP
EndMacro


; Macro pour simplifier la selection de l'élément dans la liste structurée
Macro Sel(Tool)
SelectElement (IDE(),Tool) 
EndMacro



; AJOUT des valeurs et conversion pour tous les éléments de votre GUI
AddTOOL(#WIN,200,200) ; Windows
AddTOOL(#CAN,198,198) ; Canvas
                      ; (.... etc)




Sel(#WIN) ; Selectionne l'element #WIN dans la liste structurée
OpenWindow(IDE()\ID,50,50,IDE()\W,IDE()\H, "DPI", #PB_Window_SystemMenu)

Sel(#CANV)
CanvasGadget  (IDE()\ID, 1, 1, IDE()\W,IDE()\H)
   
   Repeat
     Event = WaitWindowEvent()
     
     Select Event
     
       Case #PB_Event_Gadget
         Select EventGadget()
         
         EndSelect
            
     EndSelect
   Until Event = #PB_Event_CloseWindow