cs_domi123
Messages postés43Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention12 mars 2013
-
12 avril 2008 à 13:10
cs_domi123
Messages postés43Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention12 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 ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_domi123
Messages postés43Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention12 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.
cs_domi123
Messages postés43Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention12 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 ?