Page 1 sur 2
[Résolu] DesktopResolutionX()
Publié : mar. 19/juil./2022 13:22
par SPH
Salut,
Voici une curieuse chose : peu importe les DPI sur mon ordi, le résultat de ce code est "1" :
Code : Tout sélectionner
Debug "DPI du bureau en X : " + DesktopResolutionX()
Debug "DPI du bureau en Y : " + DesktopResolutionY()
Et vous ?
Avez vous une explication ??
Thxxx

Re: DesktopResolutionX()
Publié : mar. 19/juil./2022 14:04
par Marc56
As-tu coché la case DPI dans les options du compilateur ?
Re: DesktopResolutionX()
Publié : mar. 19/juil./2022 14:31
par SPH
Marc56 a écrit : mar. 19/juil./2022 14:04
As-tu coché la case DPI dans les options du compilateur ?
Holala, la honte...
Elle était décochée, en effet.
Merci
Re: [Résolu] DesktopResolutionX()
Publié : mar. 19/juil./2022 15:30
par Ollivier
Il faudra (je laisse les habitués confirmer ou corriger) que tu coches aussi si c'est "user" ou "administrator" pour créer un exécutable.
Re: [Résolu] DesktopResolutionX()
Publié : mar. 19/juil./2022 15:46
par SPH
Pour l'instant, je n'ai pas eu a faire un EXE mais je te remercie pour l'astuce.
Re: [Résolu] DesktopResolutionX()
Publié : sam. 23/juil./2022 16:37
par jph
Tu a aussi la possibilité de faire:
Code : Tout sélectionner
Define temp.i = OpenWindow(#PB_Any, ExamineDesktops(), 0, 0, 0, "", #PB_Window_Maximize | #PB_Window_BorderLess | #PB_Window_Invisible)
Debug DesktopWidth(0)
Debug DesktopHeight(0
CloseWindow(temp)
J'ai trouvé ça sur un de ces forums, et ça a l'avantage de fonctionner sous Linux également. Alors que l'on ne peux cocher l'option DPI que sous Windows.
Re: [Résolu] DesktopResolutionX()
Publié : sam. 23/juil./2022 16:56
par SPH
jph : on a presque le même pseudo
Je prends note de ton code; même si ça, je maitrise

Re: [Résolu] DesktopResolutionX()
Publié : dim. 24/juil./2022 9:37
par Marc56
jph a écrit : sam. 23/juil./2022 16:37
Tu a aussi la possibilité de faire:
Code : Tout sélectionner
Define temp.i = OpenWindow(#PB_Any, ExamineDesktops(), 0, 0, 0, "", #PB_Window_Maximize | #PB_Window_BorderLess | #PB_Window_Invisible)
Debug DesktopWidth(0)
Debug DesktopHeight(0
CloseWindow(temp)
J'ai trouvé ça sur un de ces forums, et ça a l'avantage de fonctionner sous Linux également. Alors que l'on ne peux cocher l'option DPI que sous Windows.
Quelle idée bizarre ? cela ne n'a pour effet que de définir le x de la fenêtre au nombre de bureaux disponibles (?!). ExamineDesktops() retournera au minimum 1.
Pour avoir la taille du bureau il n'est même pas nécessaire d'ouvrir une fenêtre
Code : Tout sélectionner
ExamineDesktops()
Debug DesktopWidth(0)
Debug DesktopHeight(0)
Cela fonctionne aussi sous Linux et même en VM.
Les fonctions DPI aware (Windows seulement) ne servent pas qu'à donner un facteur d'échelle, elles permettent de différencier les éléments qui ne doivent pas être mis à l'échelle dans une interface. Windows lui-même se charge de mettre à l'échelle ou pas certains widgets (ex: le texte d'un bouton, mais pas le bouton lui-même). Explications sur le site MS.

Re: [Résolu] DesktopResolutionX()
Publié : dim. 24/juil./2022 11:38
par jph
Ok. Merci pour l'info. C'est utile à savoir.
Re: [Résolu] DesktopResolutionX()
Publié : dim. 24/juil./2022 16:34
par Ollivier
marc56 a écrit :Quelle idée bizarre ? cela ne n'a pour effet que de définir le x de la fenêtre au nombre de bureaux disponibles (?!).
Je ne suis pas bizarre. Étant limité à 800 lignes de code, je tâche d'être économe.
Re: [Résolu] DesktopResolutionX()
Publié : dim. 24/juil./2022 16:55
par SPH
Ollivier a écrit : dim. 24/juil./2022 16:34
Étant limité à 800 lignes de code, je tâche d'être économe.
Econome ?
Ok, je ne dis rien...

Re: [Résolu] DesktopResolutionX()
Publié : dim. 24/juil./2022 17:32
par Ollivier
Code : Tout sélectionner
CloseWindow(OpenWindow(#PB_Any, 0, 0, 400, 300, "Ric rac 800 lignes...", #PB_Window_ScreenCentered) + TextGadget(#PB_Any, 0, 0, 400, 300, "Hello, en version démo") & 0 + Delay(5000) )
Re: [Résolu] DesktopResolutionX()
Publié : lun. 25/juil./2022 14:31
par jph
Ok, si tu veux. Mais enfin, si tu as une petite utilité de ce langage, c'est quand même plus confortable de l'utiliser dans sa version non bridée. Ça coûte un peu cher, mais le prix est justifié par le modèle économique. Payer une fois 79 euros, quand on est sûr d'avoir toujours une version à jour, ce n'est finalement pas si cher que ça et c'est plus confortable de pouvoir avoir autant de fichiers et de lignes de code que l'on désire.
Ceci n'est pas une leçon de morale mais juste un point de vue que je trouve utile de partager. Maintenant chacun fait ce qu'il veut. Ce n'est pas interdit d'utiliser la version démo, alors pourquoi pas même si c'est un peu la galère.

Re: [Résolu] DesktopResolutionX()
Publié : lun. 25/juil./2022 17:54
par SPH
Ollivier, comment ce fait il que dans le temps, tu n'étais pas contraint par le nombre de lignes ?
Ollivier le pirate, ou SPH le mytho ?

Re: [Résolu] DesktopResolutionX()
Publié : lun. 25/juil./2022 21:02
par Ar-S
Je pense qu'il parle de contrainte hardware...