VB6 - Définir une résolution d'écran

Résolu
SnapFAB Messages postés 61 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 5 mars 2011 - 1 déc. 2007 à 01:15
SnapFAB Messages postés 61 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 5 mars 2011 - 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 ...

6 réponses

Profil bloqué
1 déc. 2007 à 02:40
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
3
Profil bloqué
1 déc. 2007 à 01:34
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
0
Profil bloqué
1 déc. 2007 à 01:43
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
0
SnapFAB Messages postés 61 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 5 mars 2011
1 déc. 2007 à 02:23
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 déc. 2007 à 05:29
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
0
SnapFAB Messages postés 61 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 5 mars 2011
1 déc. 2007 à 18:05
Super Alain, ça marche.
Merci mille fois !
0
Rejoignez-nous