Incrémenter une valeur

Signaler
Messages postés
43
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
12 mars 2013
-
Messages postés
43
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
12 mars 2013
-
Bonjour, je voudrais incrémenter une valeur en continue à partir de ce code avec un Form, un label et une image :
<ol><li>Dim Ycapture As Integer</li><li>Dim variation As Integer</li><li>Private Sub Form_Load()</li><li>    Ycapture -1</li><li>End Sub</li><li>Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)</li><li>    If Button 1 Then Ycapture = Y</li><li>End Sub</li><li>Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)</li><li>    Const en_degre = 180 / 3.141592</li><li>    Dim angle As Integer</li><li>    If Ycapture = -1 Then Exit Sub</li><li>    If X <> 0 And Y <> 0 Then angle = (Atn(X / Y) * en_degre) + 90</li><li>    If Y < 0 Then angle = (180 + angle)</li><li>    variation = angle</li><li>End Sub</li><li>Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)</li><li>    Ycapture = -1</li><li>End Sub</li><li>Private Sub Timer1_Timer()</li><li>    Label1.Caption = variation</li><li>End Sub</li></ol>Lorque je clique sur l'image et que je la fait tourner dans le sens des aiguilles d'une montre, mon label affiche une valeur entre 0 et 360. Mais moi je voudrais que ca ne revienne pas à 0 tout le temps. Idem quand je la fait tourner dans le sens contraire des aguilles d'une montre. Je voudrais que cela affiche -1, -2, -3, -4, ..., -200, ...
Comment faire ?

Merci de votre aide.

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Je pense qu'il te suffit de dimensionner Angle dans la partie déclarations afin qu'il conserve sa valeur.
+
angle = (Atn(X / Y) * en_degre) + 90  - Angle

Vala
Jack, =fr 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
43
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
12 mars 2013

Bonjour jack, la réponse que tu m'a donné ne fonctionne pas. J'ai une valeur complétement erronée (desfois negative desfois positive). Ca n'incremente pas dutout.
J'ai pourtant bin declarer angle au tout debut du code et faire angle = (Atn(X / Y) * en_degre) + 90 - Angle comme tu m'a dit.
Messages postés
43
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
12 mars 2013

J'ai recorriger le code. Le voici :
<ol><li>Dim Ycapture As Integer</li><li>Dim variation As Integer</li><li>Dim angle As Integer</li><li>Private Sub Form_Load()</li><li>    Ycapture -1</li><li>    Form1.ScaleMode 3</li><li>    With Picture1</li><li>        .ScaleMode = 0</li><li>        .ScaleHeight = -200</li><li>        .ScaleLeft = -100</li><li>        .ScaleTop = 100</li><li>        .ScaleWidth = 200</li><li>    End With</li><li>End Sub</li><li>Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)</li><li>    If Button = 1 Then Ycapture = Y</li><li>End Sub</li><li>Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)</li><li>    Const en_degre = 180 / 3.141592</li><li>    </li><li>    If Ycapture = -1 Then Exit Sub</li><li>    If X <> 0 And Y <> 0 Then angle = (Atn(X / Y) * en_degre) + 90</li><li>    If Y < 0 Then angle = (180 + angle)</li><li>    variation = angle</li><li>End Sub</li><li>Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)</li><li>    Ycapture = -1</li><li>End Sub</li><li>Private Sub Timer1_Timer()</li><li>    Label1.Caption = variation</li><li>End Sub</li></ol>Je n'arrive toujours pas à continuer au delà de 360 et en dessous de 0.
Comment faire ? Une idée ?