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] Faire une boucle infinie


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] Faire une boucle infinie
    Bonjour , je vous expose mon probléme :
    J'aimerai créer une boucle me permettant de mettre à jour l'état d'une lampe .

    j'ai créé un : je dispose de 2 checkbox :
    j'ai affecter à la premiére :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Check1 = checked then
              nbr = 2
    la deuxiéme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Check2 = checked then
              nbr = 3
    ainsi qu'un label affichant : "lampe alumée" si le nbr est 2
    "lampe eteinte" si le nbr est 3

    Mon soucis c'est que ma demande , checkbox cocher ou pas , n'ai jamais pris en compte , donc j'ai essayer avec une boucle do / while mais je n'y arrive pas .
    Si il y a un moyen plus facile , merci de m'aider

    merci d'avance
    amicalement lucas

  2. #2
    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
    Comme on ne voit pas où tu as mis ce code, on s'interroge en vain !
    1) ton code de la sous-routine, stp
    2) nbr est public ?
    3) tes chexboxes sont indépendantes ou groupées ???

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par Lucas42
    j'ai affecter à la premiére :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Check1 = checked then
              nbr = 2
    la deuxiéme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Check2 = checked then
              nbr = 3
    à vue de nez (je ne sait pas ce que tu veut faire mais ceci me paraitrais plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Check1_Click()
    if check1.value=1 then label.caption="lampe alumée"
    End Sub
     
    Private Sub Check2_Click()
    if check2.value=1 then label.caption="lampe éteinte"
    End Sub

    enfin, c'est ce qui me parais le plus logique.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  4. #4
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    juste une idee (car ton probleme n'est pas clair du tout) et si tu utilisais le controle "timer" pour gerer tout ca ?? je croit que c'est cette repetition qui doit poser ce pb ??
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  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
    Laissons-le répondre, si vous le voulez bien !
    Je devine autre chose que ce qu'il dit : Exercice de va-et-vient !
    Si c'est celà (et je pense que oui), c'est un peu plus compliqué que ce qu'il fait !
    Mais laissons-le s'expliquer, s'il vous plait !

  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 Explications
    En fait je cré un controle activex , sur cet activex se trouve 2 images , l'une represente une lampe allumée , l'autre une lampe eteinte .
    une fois l'activex terminé , je l'importe sous InTouch ( c'est un logiciel de supervision ) , et l'ordinateur est relié à un automate .
    L'automate renvoie une variable NBR , qui correspond à : LAMPE ALLUMEE si NBR = 1 , LAMPE ETEINTE si NBR = 0 . Donc j'aimerai que lorsque la lampe s'eteigne , l'image presente sur l'activex , soit LAMPE ETEINTE , et vis versa quand la lampe est allumée .
    Je n'est incorporé AUCUN boutton .
    L'automate n'est toujours pas arrivé donc j'ai utiliser 2 checkbox pour simuler l'automate :
    - le premier checkbox met NBR à 1
    - le deuxiéme checkbox met NBR à 0
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Dim NBR As Integer
    Private Sub Check1_Click() ' CheckedBox pour simuler
    If Check1 = Checked Then   ' que la lampe est allumée
    NBR = 1
    End If
    End Sub
    Private Sub Check2_Click() ' checkbox pour simuler
    If Check2 = Checked Then   ' que la lampe est eteinte
    NBR = 0
    End If
    End Sub
    Aprés mon soucis c'est que je ne sais pas ou mettre ce bou de code , j'ai essayé bcp de chose mais en vain .....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If NBR = 1 Then
    Pitcure2.Visible = False   ' image de la lampe eteinte
    Picture1.Visible = True    ' imade de la lampe allumée
    If NBR = 0 Then
    Pitcure1.Visible = False   ' image de la lampe allumée
    Picture2.Visible = True    ' imade de la lampe eteinte
    End If
    End If
    Voila , donc si vous voyez comment faire , je vous ecouterai avec plaisir ^^
    merci d'avance
    amicalement lucas

    je rajoute une petit programme qui pourant devrait marcher , et en fait ...... NON :s

    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
    Option Explicit
    Dim NBR As Integer
    Private Sub Check1_Click() ' CheckedBox pour simuler
    If Check1 = Checked Then   ' que la lampe est allumée
    NBR = 1
    End If
    End Sub
    Private Sub Check2_Click() ' checkbox pour simuler
    If Check2 = Checked Then   ' que la lampe est eteinte
    NBR = 0
    End If
    End Sub
    Private Sub Label1_Click()
    If NBR = 1 Then
    Label1.Caption = "allumée"
    If NBR = 0 Then
    Label1.Caption = "eteint"
    End If
    End If
    End Sub

  7. #7
    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
    Je vois dans ta démarche plusieurs points troublants !
    1) Les Checkboxes ne sont pas des boutons d'option ! tu peux très bien avoir Check1 et Check2 cochés en même temps (ce que tu ne pourrais pas faire avec des optionbuttons ) mais je ne vois rien dans ton code en ce qui concerne ce que tu veux faire si tes 2 checkboxes sont cochés !
    2) Si tu veux allumer et éteindre une lampe, un seul checkbox ferait l'affaire (ou, d'ailleurs, un seul optionbutton)
    3) je ne vois pas comment, dans ton "raisonnement fort incomplet", tu fais passer à la connaissance d'un événement l'état de ta variable NBR (pas globale)
    Alors et pour résumer :
    - ou il s'agit simplement d'allumer ou éteindre : un seul contrôle, y compris un bouton de commande, fait l'affaire, associé à une variable booléenne (si autre que cochable) et sans même une telle variable (si cochable)
    - ou on t'a imposé des checkboxes pour faire celà... et il s'agit alors, selon toute évidence, d'un exercice (au demeurant facile à résoudre) qu'il va bien falloir que TU fasses. Commences par écrire sur un papier (hors syntaxe) le mécanisme de ta pensée !

    EDIT : Ah ! je vois que tu as déjà apporté des modifications à ce que tu avais écrit !
    Je vais voir ! ATTENDS !

  8. #8
    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
    Aprés mon soucis c'est que je ne sais pas ou mettre ce bou de code , j'ai essayé bcp de chose mais en vain .....
    tu crée une procédure ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub MajLAmpe ()
     Pitcure2.Visible = (NBR = 0)  ' image de la lampe eteinte
     Picture1.Visible = (NBR = 1 )    ' imade de la lampe allumée
    End sub
    et tu l'appelle sur chaque clic sur boutons ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Check1_Click() ' CheckedBox pour simuler
    If Check1 = Checked Then   ' que la lampe est allumée
    NBR = 1
    End If
    MajLampe
    End Sub
    et à l'activation de ta Form ...


    Par contre ... si c'est juste pour une simulation pourquoi ne te contente tu pas de seulement un seul checkbox, état lampe...

    Autre question : tu dis attendre l'automate... , mais dans l'application finale l'acquisition des données en provenance de l'automate sera effectué comment ? directement par l'active X ? ou par Intouch..?

  9. #9
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Private Sub Check1_Click() ' CheckedBox pour simuler
      Label1.Caption = "éteinte"
      NBR = 0  '=====UNIQUEMENT SI TU Y TIENS, A NBR !
      If Check1 = Checked Then   ' que la lampe est allumée
        Label1.Caption = "allumée"
       NBR = 1 '============UNIQUEMENT SI TU Y TIENS, A CE NBR !
      End If
    End Sub
    encore qu'un optionbutton irait mieux
    et il n'est nul besoin de NBR !

  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
    Citation Envoyé par jmfmarques
    et il n'est nul besoin de NBR !
    ...Bonjour jmf...

    En fait si tu relis le sujet du post ... NBR et pour moi un paramétre de l'activeX ..., enfin c'est pas clair ... j'attend la réponse à mes précédentes questions...

  11. #11
    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
    Alors, s'il veut une valeur :
    en plus : label1.tag = 1 ou 0 si allumé ou éteint !
    Puis lecture du .tag (NBR = label1.tag) . Pas besoin d'ajouter une variable pour celà !
    Il pourrait même (s'il joue avec une image plutot qu'avec un label ) se contenter (direct) de if image.visible then else...
    et s'il tient vraiment à son NBR : il en définit la valeur dans l'événement click, en même temps de l'état de la lampe !
    (j'ai édité pour le rajouter où il faut, (s'il y TIENT VRAIMENT)

    PS : et dire qu'un simple bouton de commande ferait l'affaire (avec changement de son caption et tout et tout) !!!!

    Tiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private NBR as integer
    Private Sub Command1_Click()
     If NBR = 1 Then
       NBR = 0
       Command1.Caption = "éteint"
     Else
       NBR = 1
       Command1.Caption = "allumé"
     End If
    End Sub

  12. #12
    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 Global ou local ??
    Comment declare ton une variable GLOBALE ??
    Et oui je l'accorde , mon exemple avec les checkbox n'est pas approprié car en effet on pe cocher les 2 en même temps ..... :s

  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 Merci Ttlm
    merci , surtout à bibil pour son code , et au redacteur pour m'avoir insité à posé mes pensées sur papier .

    le programme fonctionne trés bien , mais j'ai un autre soucis now
    ------------------> autre post ^^

    merci
    amicalement lucas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une boucle pour faire une repetition infini
    Par saibri dans le forum jQuery
    Réponses: 1
    Dernier message: 11/11/2011, 12h24
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. Faire tourner un processus dans une boucle infinie
    Par mario002e dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 19/02/2010, 15h30
  4. Faire une boucle d'attente infinie
    Par ego dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 13/11/2006, 23h14
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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