Differenze tra le versioni di "Disegnare in una DrawingArea più punti con il mouse"
Da Gambas-it.org - Wikipedia.
Riga 8: | Riga 8: | ||
Dim i As Integer | Dim i As Integer | ||
− | + | ||
− | + | With Paint | |
− | + | For i = 0 To punti.Max Step 2 | |
− | + | .FillRect(punti[i], punti[i + 1], 2, 2, Color.Red) | |
− | + | Next | |
− | + | .End | |
− | + | End With | |
− | + | ||
− | |||
− | |||
'''End''' | '''End''' | ||
Riga 23: | Riga 21: | ||
'''Public''' Sub DrawingArea1_MouseDown() | '''Public''' Sub DrawingArea1_MouseDown() | ||
− | + | StartX = Mouse.X | |
− | + | StartY = Mouse.Y | |
− | + | ||
− | + | '''End''' | |
− | |||
− | |||
'''Public''' Sub DrawingArea1_MouseUp() | '''Public''' Sub DrawingArea1_MouseUp() | ||
− | + | punti.Add(StartX) | |
− | + | punti.Add(StartY) | |
+ | |||
+ | DrawingArea1.Refresh() | ||
'''End''' | '''End''' |
Versione delle 19:50, 28 nov 2020
Per disegnare su una DrawingArea con il mouse due o più punti in modo tale che, i punti precedentemente disegnati, restino visibili sulla DrawingArea ad ogni disegno di un nuovo punto, potremo adottare un codice come il seguente:
Private StartX As Single Private StartY As Single Private punti As New Integer[] Public Sub DrawingArea1_Draw() Dim i As Integer With Paint For i = 0 To punti.Max Step 2 .FillRect(punti[i], punti[i + 1], 2, 2, Color.Red) Next .End End With End Public Sub DrawingArea1_MouseDown() StartX = Mouse.X StartY = Mouse.Y
End
Public Sub DrawingArea1_MouseUp() punti.Add(StartX) punti.Add(StartY) DrawingArea1.Refresh() End