StartX et StartY ne servent a rien .
Me.CurrentX et Me.CurrentY sont les cooordonnées qui sont utilisées comme départ pour Line, Print, etc....
dans MouseDown, tu l'initialise
dans MouseMove, tu n'a qu'a tracer depuis cette position jusqu'au point (X;Y) survollé par ta souris... CurrentX et CurrentY sont ensuite automatiquement mis à jour avec X et Y...
je vois nullement l'interet de créer deux variables pour cela, ca fait double emploi.
et ton code a surtout un TRES gros désavantage : tu utilises des Long, ton tracé sera moins précis, voire COMPLETEMENT FAUX si tu change le ScaleMode de ta Form...
(joli, mais faux)... utilises le ScaleMode '5 - Inch' pour t'en convaincre.
NON Renfield ce n'et pas comme tu l'as dit mais voila la correction.
Avec ta source on fait juste une ligne mais cela ne m'interesse pas.
Private startX As Long
Private startY As Long
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
startX = X
startY = Y
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Form1.Line (startX, startY)-(X, Y)
End If
End Sub
startX et startY pourraient disparaitre également :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Me.CurrentX = X
Me.CurrentY = Y
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Me.Line -(X, Y)
End If
End Sub
28 janv. 2007 à 10:40
Quant à moi je pense qu'une description un peu moins lapidaire de ton code serait la bienvenue.
Cordialement,
Cacophrène
26 janv. 2007 à 12:41
Me.CurrentX et Me.CurrentY sont les cooordonnées qui sont utilisées comme départ pour Line, Print, etc....
dans MouseDown, tu l'initialise
dans MouseMove, tu n'a qu'a tracer depuis cette position jusqu'au point (X;Y) survollé par ta souris... CurrentX et CurrentY sont ensuite automatiquement mis à jour avec X et Y...
je vois nullement l'interet de créer deux variables pour cela, ca fait double emploi.
et ton code a surtout un TRES gros désavantage : tu utilises des Long, ton tracé sera moins précis, voire COMPLETEMENT FAUX si tu change le ScaleMode de ta Form...
(joli, mais faux)... utilises le ScaleMode '5 - Inch' pour t'en convaincre.
26 janv. 2007 à 12:19
Avec ta source on fait juste une ligne mais cela ne m'interesse pas.
Private startX As Long
Private startY As Long
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
startX = X
startY = Y
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Form1.Line (startX, startY)-(X, Y)
End If
End Sub
26 janv. 2007 à 09:48
26 janv. 2007 à 08:58
startX et startY pourraient disparaitre également :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Me.CurrentX = X
Me.CurrentY = Y
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Me.Line -(X, Y)
End If
End Sub