Incrémenter une valeur

cs_domi123 Messages postés 43 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 12 mars 2013 - 12 avril 2008 à 13:10
cs_domi123 Messages postés 43 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 12 mars 2013 - 15 avril 2008 à 20:18
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

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
12 avril 2008 à 16:17
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)
0
cs_domi123 Messages postés 43 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 12 mars 2013
13 avril 2008 à 21:35
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.
0
cs_domi123 Messages postés 43 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 12 mars 2013
15 avril 2008 à 20:18
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 ?
0