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: |[[#Note|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: <SUP>&#091;[[#Note|Nota 1]]&#093;</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.Count - 1 Step 4  
+
     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.Add(StartX)  
+
   punti.Push(StartX)  
   punti.Add(StartY)  
+
   punti.Push(StartY)  
   punti.Add(OldX)  
+
   punti.Push(OldX)  
   punti.Add(OldY)  
+
   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 .