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]Bug étrange lié à l'horloge...


Sujet :

VB 6 et antérieur

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut [VB6]Bug étrange lié à l'horloge...
    Bonjour.

    j'ai sur une form une progressbar nommée PB et plusieurs textbox.
    celle ci execute un code de ce type à la pression sur un bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Do
     
        'là procédure...
     
        Doevents
        PB.Value = DateDiff("s", Heure, Time) 'remplissage de la progressbar
     
        Debug.Print DateDiff("s", Heure, Time) & " ; " & aBug & " ; " & Text1(1).Text & " ;"  _
        & Int(DateDiff("s", Heure, Time) / 60) & " ; " &  _
        (Int(DateDiff("s", Heure, Time) / 60) >= Text1(1).Text)
        'commande au débogueur
     
    Loop Until Int(DateDiff("s", Heure, Time) / 60) >= Text1(1).Text
    La procédure s'arrète au bout de deux minutes alors que la valeur du text1(1).text est à 10

    Le débug m'affiche :
    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
    45
    46
    3 ; Vrai ; 10 ;0 ; Faux
    6 ; Vrai ; 10 ;0 ; Faux
    8 ; Vrai ; 10 ;0 ; Faux
    11 ; Vrai ; 10 ;0 ; Faux
    14 ; Vrai ; 10 ;0 ; Faux
    16 ; Vrai ; 10 ;0 ; Faux
    19 ; Vrai ; 10 ;0 ; Faux
    21 ; Vrai ; 10 ;0 ; Faux
    24 ; Vrai ; 10 ;0 ; Faux
    26 ; Vrai ; 10 ;0 ; Faux
    29 ; Vrai ; 10 ;0 ; Faux
    31 ; Vrai ; 10 ;0 ; Faux
    34 ; Vrai ; 10 ;0 ; Faux
    37 ; Vrai ; 10 ;0 ; Faux
    39 ; Vrai ; 10 ;0 ; Faux
    42 ; Vrai ; 10 ;0 ; Faux
    44 ; Vrai ; 10 ;0 ; Faux
    47 ; Vrai ; 10 ;0 ; Faux
    50 ; Vrai ; 10 ;0 ; Faux
    52 ; Vrai ; 10 ;0 ; Faux
    55 ; Vrai ; 10 ;0 ; Faux
    58 ; Vrai ; 10 ;0 ; Faux
    60 ; Vrai ; 10 ;1 ; Faux
    63 ; Vrai ; 10 ;1 ; Faux
    65 ; Vrai ; 10 ;1 ; Faux
    68 ; Vrai ; 10 ;1 ; Faux
    70 ; Vrai ; 10 ;1 ; Faux
    73 ; Vrai ; 10 ;1 ; Faux
    75 ; Vrai ; 10 ;1 ; Faux
    78 ; Vrai ; 10 ;1 ; Faux
    80 ; Vrai ; 10 ;1 ; Faux
    83 ; Vrai ; 10 ;1 ; Faux
    86 ; Vrai ; 10 ;1 ; Faux
    89 ; Vrai ; 10 ;1 ; Faux
    92 ; Vrai ; 10 ;1 ; Faux
    95 ; Vrai ; 10 ;1 ; Faux
    97 ; Vrai ; 10 ;1 ; Faux
    100 ; Vrai ; 10 ;1 ; Faux
    102 ; Vrai ; 10 ;1 ; Faux
    105 ; Vrai ; 10 ;1 ; Faux
    107 ; Vrai ; 10 ;1 ; Faux
    110 ; Vrai ; 10 ;1 ; Faux
    113 ; Vrai ; 10 ;1 ; Faux
    116 ; Vrai ; 10 ;1 ; Faux
    118 ; Vrai ; 10 ;1 ; Faux
    121 ; Vrai ; 10 ;2 ; Vrai
    si (2>=10) =true , alors je ne peut rien faire...


    si quelqu'un à une idée...


    salut

  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
    Par défaut
    1) parle-nous de la variable heure.
    2)
    si (2>=10) =true , alors je ne peut rien faire
    2 est certes plus petit que 10 mais "2" est en effet plus grand que "10"
    (et je vois que tu te réfères à text1.text = chaine de caractères) alors qu'il convient d'invoquer Val(text1.text)

  3. #3
    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
    Par défaut
    Bonjour Méphisto.
    J'ai pensé à toi cette nuit et me suis demandé pourquoi tu tenais à utiliser Datediff (gourmand et qui risque de ne pas encore avoir terminé son calcul entre 2 allers-retours de ta boucle).
    Pourquoi ne pas utiliser la fonction Timer ?
    Je crois deviner que tu veux pouvoir éviter le problème du passage à Minuit (c'est çà ?). Si c'est celà, la parade est facile et ton test dans la boucle s'en trouvera grandement agilisé.
    En d'autres termes : tout cela ressemble fort à un minuteur à réglage digital (ta textbox) et à affichage graphique numérisé (une progressbar). Un minuteur est (et doit rester) indépendant de l'heure et ne se consacrer qu'à la durée.
    Si tu ne veux pas utiliser la fonction Timer, tu peux utiliser un contrôle timer (qui mange moins de pain qu'on le croit) dont la fonction serait d'incrémenter une variable toutes les 1000 millisecondes et, chaque fois que cette variable = un nouveau multiple de 60, faire avancer ton affichage

    Dis-moi.

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    j'utilise le datediff par comodité at aussi par-ce que je dois n'arréter la boucle qu'après une certainne durée.

    comme tu peux le voir dans le debug, ma procédure met presque 3 secondes donc la taille du datediff esy négligeable devan ça.

    j'ai réglé le problème avec un val.

    pourquoi "2" >= "10"? il les compte en binaire?

    merci

  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
    Par défaut
    Je pense que oui... (je ne sais pas comment microsoft a choisi de gérer)
    Mais tu peux le vérifier en faisant un tri dans un tableau Word ou Excel.
    Par exemple : toto10 sur une ligne et toto2 sur l'autre ===>> tri ascendant ==>> toto10 avant toto2 (donc plus petit)
    salut

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Une comparaison texte s'effectue par rapport à la table ascii
    caractère par caractère jusqu'à ce qu'une différence est trouvée

    "ab">"ac" parce que "c">"b"
    de même "2">"1" donc par extension "2">"10" etc.

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    d'accord merci.

    salut

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

Discussions similaires

  1. [VB6] Bug d'une appli (ou "Impossible n'est pas français")
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 09/06/2006, 12h45
  2. [VB6] Bug d'affichage liste déroulante
    Par yttrium dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 30/05/2006, 08h45
  3. [VB6]Bug de frame
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 21/04/2006, 21h47
  4. Bug étrange
    Par xavier faure dans le forum Langage
    Réponses: 4
    Dernier message: 01/04/2006, 13h54
  5. [VB6]Bug dont je ne vois pas la cause.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 14/02/2006, 14h22

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