Cacophrene
Messages postés251Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 4 mars 20081 28 janv. 2007 à 10:40
Salut !
Quant à moi je pense qu'une description un peu moins lapidaire de ton code serait la bienvenue.
Cordialement,
Cacophrène
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 26 janv. 2007 à 12:41
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.
phpnuke
Messages postés14Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention28 septembre 2007 26 janv. 2007 à 12:19
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
phpnuke
Messages postés14Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention28 septembre 2007 26 janv. 2007 à 09:48
Merce Renfield enfin un commentaire inteligent
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 26 janv. 2007 à 08:58
Down ne sert pas
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
fdiedler2000
Messages postés383Date d'inscriptionsamedi 29 janvier 2005StatutMembreDernière intervention 1 décembre 2008 25 janv. 2007 à 20:49
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
25 janv. 2007 à 20:49