IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]Variable Globale


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut [VB6]Variable Globale
    Bonjour , je suis en train de créer un controle activeX sur lequel se trouve plusieurs images :
    1 - une lampe allumée , qui s'affiche qd NBR = 1
    2 - une lampe eteinte , qui s'affiche qd NBR = 0

    Je posséde egalement une feuille ( MENU ) sur laquelle ce trouve des OptionButtons
    l'un permet de mettre la variable NBR à 1 , le second à 0 .

    Je dois donc utiliser NBR en tant que variable globale , le soucis intervient à ce niveau

    Dans le code de la feuille ( MENU ) j'ai ecrit ceci
    Dans le code de mon ActiveX j'ai ecrit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub EtatImg()
    Imgouvert.Visible = (NBR= 1)
    Imgferme.Visible = (NBR= 0)
    End Sub
     
    Private Sub UserControl_Initialize()              ' je pense que le soucis vien de la !!!!!! je ne sais pas quelle procédure utiliser ...
    If menu.NBR = 0 Then        ' Lampe ETEINTE
         EtatImg
    End If
    If menu.NBR= 1 Then         ' Lampe ALLUMEE
         EtatImg
    End If
    End Sub
    Merci d'avance
    amicalement LUCAS

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Ta lampe c'est une vanne non ?

    relis le code ... ta fonction EtatImg.. , met à jour l'état de ta vanne en fonction de la variable etat_van ... mais ou fais tu le lien avec NBR ?

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Lucas42
    Bonjour , je suis en train de créer un controle activeX sur lequel se trouve plusieurs images :
    1 - une lampe allumée , qui s'affiche qd NBR = 1
    2 - une lampe eteinte , qui s'affiche qd NBR = 2

    Je posséde egalement une feuille ( MENU ) sur laquelle ce trouve des OptionButtons
    l'un permet de mettre la variable NBR à 1 , le second à 0 .
    Les états de NBR c'est quoi finale ment 1 ou 2 // 1 ou 0 ...?

  4. #4
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut Dsl
    Désolé , je suis aller trop vite , oui mon projet c des vannes , mais c kil y a bcp plus de choix , donc j'ai pris l'exemple des lampes .

    donc ui allumé NBR = 1
    eteint NBR = 0

    donc dans EtatImg , il faut remplacer Etat_van par NBR ^^

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Le problème est celui de ton activex et de ses propriétés !
    Quel est le nom de l'activeX et quelles propriétés as-tu définies pour lui ?

    Si cet activex affice une image, tu dois lui "construire" une propriété (allumé, par exemple, avec valeurs possibles True ou False)

    Je voudrais bien voir la partie du code (de ton usercontrol) où tu as défini ses propriétés !

    Si ton activex est construit normalement, avec une propriété "allumé" par exemple,
    dans ta Form :
    nomactivex.allumé = True ou = False (selon le cas)

    Maintenant : pourquoi diable passer par un activex pour faire si peu ???
    Si ce n'est pas un exercice qu'on t'impose (encore une fois), il y a beaucoup plus simple et efficace à faire

  6. #6
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    Et bien , j'utilise un activex car je veut pouvoir l'importer dans un logiciel de supervision InTouch .

    voici le code de mon activeX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Dim cligno As Integer
    Sub EtatImg()
     Imgferme.Visible = (Etat_van = 0)     ' image de la vanne fermée
     Imgouvert.Visible = (Etat_van = 1)      ' image de la vanne ouverte
     Imgdefaut.Visible = (Etat_van = 2)     ' image de la vanne en defaut
     Imgindefinit.Visible = (Etat_van = 6)  ' image de la vanne en position non definit
    End Sub
     
    Private Sub Imgferme_DblClick()         ' pour faire apparaitre le menu
    menu.Show
    End Sub
    Private Sub Imgouvert_DblClick()        ' pour faire apparaitre le menu
    menu.Show
    End Sub
    Private Sub Imgindefinit_DblClick()     ' pour faire apparaitre le menu
    menu.Show
    End Sub
    Private Sub Imgdefaut_DblClick()        ' pour faire apparaitre le menu
    menu.Show
    End Sub
    Private Sub Timer1_Timer()              'Gestion du Timer pour faire clignoter l'image defaut
    cligno = cligno + 1
        Select Case cligno
        Case 1
            Imgdefaut.Visible = False
        Case 2
            Imgdefaut.Visible = True
    cligno = 0
    End Select
    End Sub
    Private Sub UserControl_Initialize()
    If menu.Etat_van = 0 Then
        EtatImg
    End If
    If menu.Etat_van = 1 Then
        EtatImg
    End If
    If menu.Etat_van = 2 Then
        EtatImg
    End If
    If menu.Etat_van = 6 Then
        EtatImg
    End If
    End Sub
    et le code de ma form est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Etat_van As Integer
    Private Sub Option1_Click()     ' OptionButton simulant Etat_van = 0
    If Option1 = True Then
    Etat_van = 0
    End If
    End Sub
    Private Sub Option2_Click()     ' OptionButton simulant Etat_van = 1
    If Option2 = True Then
    Etat_van = 1
    End If
    End Sub
    Private Sub Option3_Click()     ' OptionButton simulant Etat_van = 2
    If Option3 = True Then
    Etat_van = 2
    End If
    End Sub
    Private Sub Option4_Click()     ' OptionButton simulant Etat_van = 6
    If Option4 = True Then
    Etat_van = 6
    End If
    End Sub
    et je comprend pas pourquoi cela ne fonctionne pas ???

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bon j'ai lu ton code en travers (oui je suis un peu occupé en pleine partie de belote sur zonejeux ..) et j'ai pas vu ou tu as déclaré eta_vann dans ton activeX?

    de plus sur l'initialize de ta form .. pourquoi t'embête tu pour tester la valeur d'eta_vann avant l'appel de la sub Etat_img... appelle la procédure dans tous les cas...


    bon j'ai vu la déclaration ... alors ce qui manque c'est peu-être un appel à la fonction Etat_img sur changement d'état de eta_vann (clic sur chec box..)

  8. #8
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    ma declaration de Etat_van et tout en haut du code de ma form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Etat_van As Integer
    Elle est bien declarer en tant que globale comme ca ??

    en ce ki concerne l'initialize de ma form , je me suis dit que si je mettais les conditions ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub UserControl_Initialize()
    Timer1.Enabled = False
    If menu.Etat_van = 0 Then
        EtatImg
    End If
    If menu.Etat_van = 1 Then
        EtatImg
    End If
    If menu.Etat_van = 2 Then
        EtatImg
    End If
    If menu.Etat_van = 6 Then
        EtatImg
    End If
    End Sub
    et bien je pensé que la valeur de Etat_van serai sans cesse demander ....
    je me trompe ??

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Lucas42
    ma declaration de Etat_van et tout en haut du code de ma form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Etat_van As Integer
    Elle est bien declarer en tant que globale comme ca ??

    en ce ki concerne l'initialize de ma form , je me suis dit que si je mettais les conditions ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub UserControl_Initialize()
    Timer1.Enabled = False
    If menu.Etat_van = 0 Then
        EtatImg
    End If
    If menu.Etat_van = 1 Then
        EtatImg
    End If
    If menu.Etat_van = 2 Then
        EtatImg
    End If
    If menu.Etat_van = 6 Then
        EtatImg
    End If
    End Sub
    et bien je pensé que la valeur de Etat_van serai sans cesse demander ....
    je me trompe ??
    ben oui le code initialize n'est exécuté qu'une fois ... à l'initialisation ...

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour l'histoire de la portée des variables pour être sur que tu ne fais pas d'erreur rajout en haut tes modules de codes la ligne
    qui oblige à la déclaration explicite des variables...

    car je comprends pas que tu utilise la variable eta_van de deux maniére différente dans ta form , eta_van seul ou menu.eta_van ..;

  11. #11
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    oui
    est present en haut de mes pages
    pour ce ki est de Etat_van et menu.Etat_van , c'est tout simplement un oublie de ma part , il faut bien utiliser donc je comprend pas pk cela ne fonctionne pas , es ce parcke je fais la manip k'a l'initialisation ???

    comment faire pour ke cela ce fasse tout le tps , et non qu'une seul fois ??

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Il faut un événement pour déclencher l'appel de ta fonction de mise à jour ... donc soit pour tes tests tu l'appelle lors du clic du bouton checK, ou en fonctionnement normal lors de la mise à jour de la variable eta_van ( d'ailleurs tu ma toujours pas dit comment elle doit être mis à jour?) ..

    ou tu utilise un Timer.. ( ce qui en soit n'est pas terrible puisque par le fait tu t'éloigne de la programmation événemetielle..) et à chaque déclenchement du timer tu lance la fameuse fonction de mise à jour
    EtatImg

  13. #13
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    et bien , pour que tu voi le truc dans sa globalité , le programme que je suis en train de faire avec vos aides , va etre importer sous InTouch ( logiciel de supervision ) , le pc sera ensuite relié à un automate qui génére la variable Etat_van .

    Donc comme tu la presagé , pour mes test , j'utilise une form sur laquel j'ai disposer 4 Optionbutton , avec pour chacune d'elles une valeur definie de Etat_van .

    Il faut que je rajoute kkchose dans ma fonction Option1_click pour pouvoir mettre à jour la variable Etat_van , et que dans mon activex , il prenne la valeur considéré ???

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Et moi.... je suis assez surpris par cet ocx sans propriétés définies !!!!

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Lucas42
    et bien , pour que tu voi le truc dans sa globalité , le programme que je suis en train de faire avec vos aides , va etre importer sous InTouch ( logiciel de supervision ) , le pc sera ensuite relié à un automate qui génére la variable Etat_van .
    oui mais j'ai toujours pas ma réponse ..! il cause comment ton Programme à l'automate ... ? directement ? ou c'est intouch qui cause avec l'automat et transmet les données à l'activeX ?.

  16. #16
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    Ah pardon , je t'explique alors :

    - ActiveX dialogue avec InTouch
    - InTouch dialogue avec L'automate

    donc il me suffit d'utiliser les mm variable que celles presentes dans l'automate.

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    C'est quoi, çà ?
    du bouche à oreille ? un jeu de relais pour faire mumuse ?

  18. #18
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    de quoi
    C'est quoi, çà ?
    du bouche à oreille ? un jeu de relais pour faire mumuse ?
    Bibil me demander comment mon programme allé dialgué avec l'automate, je lui est donc expliqué .

    Et la je péte un plomb , ca ve tj pas marcher cette histoire de variable globale
    du moin si , dés que je lance l'execution , c toujours la mm image qui s'affiche car Etat_Van par defaut =0, mais ca le fais qu'à l'initialisation, donc si je clique sur OptionButton , qui indique que Etat_van=1 , l'image devrait changer , et c'est pas le cas , car la variable n'est pas mis à jour

  19. #19
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    On y va :
    quel est le nom de ton appli ?
    Qu'est Intouch ?
    comment s'établissent tes "dialogues" ? (tous)

  20. #20
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Lucas42
    de quoi


    Bibil me demander comment mon programme allé dialgué avec l'automate, je lui est donc expliqué .

    Et la je péte un plomb , ca ve tj pas marcher cette histoire de variable globale
    du moin si , dés que je lance l'execution , c toujours la mm image qui s'affiche car Etat_Van par defaut =0, mais ca le fais qu'à l'initialisation, donc si je clique sur OptionButton , qui indique que Etat_van=1 , l'image devrait changer , et c'est pas le cas , car la variable n'est pas mis à jour
    et donc n'aurai tu pas intérêt à développer plutôt un synoptique intouch, qui appelle ton activeX pour le tester.., avec des boutons te permettant de modifier les variables Intouch... envoyées en paramétre à l'activeX ? .. je ne me souviens plus comment un ActiveX "intercepte" les paramétres qu'il reçoit de l'extérieur .. mais c'est vers la qu'il faut chercher pour effectuer l'appel à ta procédure de mise à jour états.. :
    etatImg

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/04/2013, 16h06
  2. variable global en VB6
    Par wise_mind dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/08/2008, 10h40
  3. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22
  4. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo