On rajoute une condition pour savoir si on bouger la soursi lors du tracer:
Option Explicit
Private Type TLine
StartX As Single
StartY As Single
EndX As Single
EndY As Single
End Type
Dim Trace As Boolean, IsTrace As Boolean
Dim StartX As Single, StartY As Single
Dim EndX As Single, EndY As Single
Dim Lines() As TLine
Dim NbLine As Integer
Private Sub Form_Load()
NbLine = -1
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartX = X
StartY = Y
Trace = True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Trace = True Then
'Me.Circle (StartX, StartY), Sqr((StartX - EndX) ^ 2 + (StartY - EndY) ^ 2), Me.BackColor
Me.Line (StartX, StartY)-(EndX, EndY), Me.BackColor EndX X : EndY Y
Call ReDrawLines()
'Me.Circle (StartX, StartY), Sqr((StartX - EndX) ^ 2 + (StartY - EndY) ^ 2)
Me.Line (StartX, StartY)-(EndX, EndY)
IsTrace = True
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Trace = True Then
If IsTrace = True Then
NbLine = NbLine + 1
ReDim Preserve Lines(NbLine) As TLine
Lines(NbLine).StartX = StartX
Lines(NbLine).StartY = StartY
Lines(NbLine).EndX = EndX
Lines(NbLine).EndY = EndY
End If
Trace = False
IsTrace = False
Call ReDrawLines()
End If
End Sub
Private Sub ReDrawLines()
Dim iLine As Integer
For iLine = 0 To NbLine
'Me.Circle (Lines(iLine).StartX, Lines(iLine).StartY), Sqr((Lines(iLine).StartX - Lines(iLine).EndX) ^ 2 + (Lines(iLine).StartY - Lines(iLine).EndY) ^ 2), vbRed
Me.Line (Lines(iLine).StartX, Lines(iLine).StartY)-(Lines(iLine).EndX, Lines(iLine).EndY), vbRed
Next iLine
End Sub
Kenji
<HR width="100%" SIZE=2>
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.