Forme en cliquant et déplaçant

linkinpar236737 Messages postés 161 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 7 mai 2007 - 21 juin 2004 à 13:47
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 21 juin 2004 à 18:53
Voici mon problème :
Alors, comment faire pour que quand on clique et déplace la souris, il apparaisse par exemple un cercle ?
Je ne veux pas qu'un cercle apparaisse quand on clique, ni quand on déplace la souris, mais quand on fait les deux à la fois.
Merci de votre aide.

1 réponse

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
21 juin 2004 à 18:53
Salut linkinpar236737
Pour savoir si la souris a son bouton enfoncé, il faut mémoriser cet état dans le MouseDown.
Je te propose ces quelques lignes. A toi de les comprendre et de les améliorer :
Private Type SourisPositionType
    X   As Long
    Y   As Long
End Type
Dim SourisPosition As SourisPositionType
Dim SourisDown As Boolean
'

Private Sub Form_Load()
    ' La forme récupère les évenements avant les composants
    Me.KeyPreview = True
    ' Echelle en twips
    Me.ScaleMode = vbTwips
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' Si le click gauche est appuyé, on mémorise la position
    If Not SourisDown And Button And vbLeftButton Then
        SourisPosition.X = X
        SourisPosition.Y = Y
        SourisDown = True
    End If

End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' Annule la mémoire
    SourisDown = False
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' La souris se déplace : On ressort si le click n'est pas enfoncé
    If Not SourisDown Then Exit Sub
    ' Calcule le rayon par rapport au début
    Dim Rayon As Single
    Rayon = Abs(X - SourisPosition.X)
    ' On va dessiner à partir de la position mémorisée lors du click
    Me.Circle (SourisPosition.X, SourisPosition.Y), Rayon
End Sub

Vous zètes pas gatés sur vbfrance, hein ?

Vala
Jack
0