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

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