(VB6)- Undo commando inzetten

Status
Niet open voor verdere reacties.

satriano17

Gebruiker
Lid geworden
30 sep 2012
Berichten
331
Dag
Met deze code kan ik zonder probleem lijnen trekken door het linkerknop van de mouse te drukken en trekken op een picturebox
Alles werkt perfect. Ik wou nu dat , bij het drukken van de rechter knop van de mouse de laatste aangebracht lijn te wissen. Een soort van undo dus.

Hoe kan ik doen? Met welke commando en waar?
Dank u bij voorbaat

Code:
Private beginpunt As Boolean
Private startX As Single
Private startY As Single
Private endX As Single
Private endY As Single

Private Type linemouse
x1 As Single
y1 As Single
x2 As Single
y2 As Single
End Type
Private arraylinesMouse() As linemouse

Private Sub Form_Load()

ReDim Preserve arraylinesMouse(0)

End Sub

Private Sub Picture1_Click()

If beginpunt = False Then
Picture1.MousePointer = 2
beginpunt = True
Else
Picture1.MousePointer = 1
beginpunt = False
ReDim Preserve arraylinesMouse(UBound(arraylinesMouse) + 1)
Dim l As linemouse
l.x1 = endX
l.y1 = endY
l.x2 = startX
l.y2 = startY
arraylinesMouse(UBound(arraylinesMouse)) = l
End If

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If beginpunt = False Then
startX = X
startY = Y
Else
'refresh PictureBox
Picture1.Refresh

'refresh array graphic
'...

'refresh array lines
Dim i As Integer
For i = 0 To UBound(arraylinesMouse)
With arraylinesMouse(i)
Picture1.Line (.x1, .y1)-(.x2, .y2), vbBlack
End With
Next i
'nieuwe lijn (tijdelijk line)
Picture1.Line (X, Y)-(startX, startY), vbBlack
endX = X
endY = Y
End If

End Sub
 
Laatst bewerkt:
Kan dat niet gewoon met de toetscombinatie Ctrl-Z?
 
Nee, Edmoor. Dat gaat ook niet (pas geprobeerd) maar, in elke geval, zou professioneler uitzien
met rechter toets of ook een command onder een command button
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan