Differenze tra le versioni di "Disegnare in una DrawingArea più linee con il mouse"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
− | Per disegnare su una ''DrawingArea'' con il mouse due o più linee in modo tale che, le linee precedentemente disegnate, restino visibili sulla ''DrawingArea'' ad ogni disegno di una nuova linea, potremo adottare un codice come il seguente: | + | Per disegnare su una ''DrawingArea'' con il mouse due o più linee in modo tale che, le linee precedentemente disegnate, restino visibili sulla ''DrawingArea'' ad ogni disegno di una nuova linea, potremo adottare un codice come il seguente: <SUP>[[[#Note|Nota 1]]]</sup> |
Private OldX As Single | Private OldX As Single | ||
Private OldY As Single | Private OldY As Single | ||
Riga 14: | Riga 14: | ||
.Foreground = Color.Red | .Foreground = Color.Red | ||
.Line(StartX, StartY, OldX, OldY) | .Line(StartX, StartY, OldX, OldY) | ||
− | For i = 0 To punti. | + | For i = 0 To punti.Max Step 4 |
.Line(punti[i], punti[i + 1], punti[i + 2], punti[i + 3]) | .Line(punti[i], punti[i + 1], punti[i + 2], punti[i + 3]) | ||
Next | Next | ||
Riga 45: | Riga 45: | ||
'''Public''' Sub DrawingArea1_MouseUp() | '''Public''' Sub DrawingArea1_MouseUp() | ||
− | punti. | + | punti.Push(StartX) |
− | punti. | + | punti.Push(StartY) |
− | punti. | + | punti.Push(OldX) |
− | punti. | + | punti.Push(OldY) |
'''End''' | '''End''' |
Versione delle 09:30, 4 dic 2018
Per disegnare su una DrawingArea con il mouse due o più linee in modo tale che, le linee precedentemente disegnate, restino visibili sulla DrawingArea ad ogni disegno di una nuova linea, potremo adottare un codice come il seguente: [Nota 1]
Private OldX As Single Private OldY As Single Private StartX As Single Private StartY As Single Private punti As New Integer[] Public Sub DrawingArea1_Draw() Dim i As Integer With Draw .Foreground = Color.Red .Line(StartX, StartY, OldX, OldY) For i = 0 To punti.Max Step 4 .Line(punti[i], punti[i + 1], punti[i + 2], punti[i + 3]) Next .End End With End Public Sub DrawingArea1_MouseDown() StartX = Mouse.X StartY = Mouse.Y OldX = StartX OldY = StartY End Public Sub DrawingArea1_MouseMove() OldX = Mouse.X OldY = Mouse.Y DrawingArea1.Refresh() End Public Sub DrawingArea1_MouseUp() punti.Push(StartX) punti.Push(StartY) punti.Push(OldX) punti.Push(OldY) End
Note
[1] Il codice è stato realizzato dall'utente Gianluigi del forum gambas-it.org .