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 Draw
+
  With Paint
    .Foreground = Color.Red
+
    For i = 0 To punti.Max Step 2
    .Point(StartX, StartY)
+
      .FillRect(punti[i], punti[i + 1], 2, 2, Color.Red)
    For i = 0 To punti.Count - 1 Step 2
+
    Next
      .Point(punti[i], punti[i + 1])
+
    .End
    Next          
+
  End With
    .End        
+
 
  End With      
 
 
 
  '''End'''   
 
  '''End'''   
 
    
 
    
Riga 23: Riga 21:
 
  '''Public''' Sub DrawingArea1_MouseDown()     
 
  '''Public''' Sub DrawingArea1_MouseDown()     
 
    
 
    
  StartX = Mouse.X   
+
  StartX = Mouse.X   
  StartY = Mouse.Y
+
  StartY = Mouse.Y
+
 
  DrawingArea1.Refresh()
+
'''End'''
 
'''End'''
 
 
   
 
   
 
   
 
   
 
  '''Public''' Sub DrawingArea1_MouseUp()  
 
  '''Public''' Sub DrawingArea1_MouseUp()  
 
    
 
    
  punti.Add(StartX)  
+
  punti.Add(StartX)  
  punti.Add(StartY)
+
  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