VB6 - Définir une résolution d'écran [Résolu]

SnapFAB 61 Messages postés samedi 10 novembre 2007Date d'inscription 5 mars 2011 Dernière intervention - 1 déc. 2007 à 01:15 - Dernière réponse : SnapFAB 61 Messages postés samedi 10 novembre 2007Date d'inscription 5 mars 2011 Dernière intervention
- 1 déc. 2007 à 18:05
Bonjour, débutant dans la programmation sur VB6, voici mon problème :


Je sais (grâce à l'aide des forums ) connaître la résolution de mon écran dans mon programme avec les lignes suivantes :

<code class="vb_keyword1">Dim
x
As
Long, y
As
Long
x
=
Screen
.
Width
/
Screen
.
TwipsPerPixelX
'
résolution
horizontale

y
=
Screen
.
Height
/
Screen
.
TwipsPerPixelY
'résolution 
verticale
</code>


Par contre je souhaiterai que "x" et "y" deviennent des variables
publiques que je puisse reprendre en quittant mon programme. Car au
lancement de mon programme je force une résolution d'écran et je
voudrai remettre la résolution d'écran d'origine quand je quitte mon
programme. Donc j'ai essayé de mettre dans un module les lignes
suivantes :

Private x As Long, y As Long

x = Screen.Width / Screen.TwipsPerPixelX    'résolution horizontale

y = Screen.Height / Screen.TwipsPerPixelY   'verticale

Et voilà le message d'erreur que j'ai : "Invalid outside procedure"
J'ai essayé avec "Public" a la place de "Private" mais même erreur.

Merci beaucoup pour votre aide ...
Afficher la suite 

6 réponses

Répondre au sujet
cs_Galain 1270 Messages postés mardi 11 novembre 2003Date d'inscription 24 juillet 2013 Dernière intervention - 1 déc. 2007 à 02:40
+3
Utile
Dans une procédure Sub ou Function dans une Form tu utilises tes 2 variables
Private sub Resolution
   
resx = Screen.Width / Screen.TwipsPerPixelX


    r


esy = Screen.Heigth /Screen.TwipsPerPixelY
End Sub

C'est
TwipsPerPixelX et non ScreenTwipsPerPixelX  Et pour Y c'est idem
J'ai mis un Screen de trop
Excuses

GRENIER Alain
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Galain
cs_Galain 1270 Messages postés mardi 11 novembre 2003Date d'inscription 24 juillet 2013 Dernière intervention - 1 déc. 2007 à 01:34
0
Utile
Salut

Dans un module tu déclares tes 2 variables publiques

Public resx As Long, resy As Long


<hr size="2" width="100%" />




Dans ta feuille au sein d'une procédure tu utilises tes variables



Private Sub Resolution()

resx = Screen.Width / Screen.TwipsPerPixelX    'résolution horizontale



resy = Screen.Height / Screen.TwipsPerPixelY   'verticale

End Sub



Appelle plutôt tes 2 variables resx et resy car c'est plus parlant

"Invalid outside procedure" : cela signifie que les 2 lignes de codes qui te
donnent les résolutions ne sont pas incluses dans une procédure SUB ou FUNCTION

Les déclarations de variable se font en début de feuille ou de module sans mettre de procédures ou juste après la déclaration d'une procédure si  elles ne servent qu'à cette procédure
GRENIER Alain
Commenter la réponse de cs_Galain
cs_Galain 1270 Messages postés mardi 11 novembre 2003Date d'inscription 24 juillet 2013 Dernière intervention - 1 déc. 2007 à 01:43
0
Utile
Excuse : le format du texte a été mal transmis

Dans un module tu déclares tes 2 variables
Public resx as long, resy as long

Dans une procédure Sub ou Function dans une Form tu utilises tes 2 variables
Private sub Resolution
   
resx = Screen.Width / ScreenTwipsPerPixelX


    r


esy = Screen.Heigth / ScreenTwipsPerPixelY
End Sub













GRENIER Alain
Commenter la réponse de cs_Galain
SnapFAB 61 Messages postés samedi 10 novembre 2007Date d'inscription 5 mars 2011 Dernière intervention - 1 déc. 2007 à 02:23
0
Utile
Merci pour ta réponse si rapide,

Je viens de tester ton code mais j'ai malheureusement un nouveau message d'erreur au lancement du private sub :

"Compile error : Method or data member not found"

Pourquoi tant de haine ?
Commenter la réponse de SnapFAB
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 1 déc. 2007 à 05:29
0
Utile
salut,

et le petit lien qui va bien.... :
http://www.vbfrance.com/doc/faq.aspx#vb_varpublic

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Commenter la réponse de PCPT
SnapFAB 61 Messages postés samedi 10 novembre 2007Date d'inscription 5 mars 2011 Dernière intervention - 1 déc. 2007 à 18:05
0
Utile
Super Alain, ça marche.
Merci mille fois !
Commenter la réponse de SnapFAB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.