Incrementation variable [Résolu]

Signaler
Messages postés
10
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
-
Messages postés
24
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
12 juillet 2010
-
bonjour,
J'ai un petit souci!!
Voila, je dispose d'un bouton et d'un label, je desire incrementer une variable en boucle tant que le bouton est enfoncer. La valeur de cette variable doit etre afficher instantanément dans le label.
J'ai essayé avec le Timer, mais sans succes car on observer le resultat uniquement quand le bouton était relacher.
Merci d'avance

6 réponses

Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
3
Dim i As Long

Function LoopMe(bb As Boolean)
    If bb = True Then
        i = 0
        While Not i = -1
            i = i + 1
            Me.Caption = CStr(i)
            DoEvents
        Wend
    Else
        i = -1
    End If
End Function

Private Sub Command1_Click()
    i = -1
End Sub

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    LoopMe True
End Sub

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    LoopMe False
End Sub
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
En fait, il n'y a pas de propriété qui te dise si un bouton est enfoncé par la souris ou pas.
Il faut donc le construire :
Dans la déclaration générale de ta forme, tu ajoutes :
   Private bBoutonOn As Boolean = False
Ensuite, dans le monBouton_MouseDown, tu montes la mémoire
   bBoutonOn = True
Et dans le monBouton_MouseUp, tu le fais disparaitre
   bBoutonOn = False
Dans ton Timer, tu n'as plus qu'à incrémenter ta valeur si le bBoutonON est à True

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
3
j'ai oublié un truc dans mon test ^^
tu peux enlever

Private Sub Command1_Click()
    i = -1
End Sub
Messages postés
10
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009

Merci bien, le morceau de code fonctionne impacablement!!! par contre, un petit changement en cas d'utilisation du vb net (petit oubli de ma part, je ne l'avais pas précisé)
Remplacer:
DoEvents
Par:
System.Windows.Forms.Application.DoEvents()
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
3
De rien, et oui... je suis resterai au VB6

Au lieu de se rapprocher d'un langage machine simplifié à la nouvelle technologie,
Microsoft se met a cuisiner. Au plat du jour: des spaghettis à la sauce VB10 !

C'est du genre:

Dim MonTruc as Function(byref atyou as long) as String
                             private property Bordel as news List(of string) from {"c","vraiment","nimporte","koi"} with
                             cnull = {0,0,0}
                             from Bordel in { "c" } order by "vraiment" lenght Select "nimporte"
                             Array ForEach("koi" function(2010); msgbox("Au Secour !"))
                          End Function
Messages postés
24
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
12 juillet 2010

salut !!!

j'ai besoin du code d'incrémentation de la variable dans un label avec le code vb.net !!
il y'a quelqu'un qui a une solution ???
mèrci !!