Differenze tra le versioni di "Spostare con il mouse un rettangolo in una DrawingArea"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Nel seguente esempio si potrà spostare con il mouse sulla superficie di una ''DrawingArea'' un rettangolo (o un quadrato) precedentemente disegnato. <BR>In particolare durant...")
 
Riga 1: Riga 1:
 
Nel seguente esempio si potrà spostare con il mouse sulla superficie di una ''DrawingArea'' un rettangolo (o un quadrato) precedentemente disegnato.
 
Nel seguente esempio si potrà spostare con il mouse sulla superficie di una ''DrawingArea'' un rettangolo (o un quadrato) precedentemente disegnato.
 
<BR>In particolare durante lo spostamento del rettangolo il puntatore del mouse resterà laddove si è cliccato all'interno del rettangolo.
 
<BR>In particolare durante lo spostamento del rettangolo il puntatore del mouse resterà laddove si è cliccato all'interno del rettangolo.
<BR>Si farà uso delle risorse della Classe "Rect" per operare idealmente sul rettangolo che sarà disegnato e spostato sulla ''DrawingArea''.
+
<BR>Si farà uso delle risorse della Classe "Rect" per operare idealmente sul rettangolo che sarà disegnato e spostato sulla ''DrawingArea''. <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
 
  Private rc As Rect
 
  Private rc As Rect
  Private spx As Short
+
  Private x As Short
  Private spy As Short
+
  Private y As Short
 
   
 
   
 
  '''Public''' Sub _new()
 
  '''Public''' Sub _new()
Riga 17: Riga 17:
 
   With rc
 
   With rc
 
     If Not .Contains(Mouse.X, Mouse.Y) Then Return  
 
     If Not .Contains(Mouse.X, Mouse.Y) Then Return  
     spx = Mouse.X - .X
+
     x = Mouse.X - .X
     spy = Mouse.Y - .Y
+
     y = Mouse.Y - .Y
 
   End With  
 
   End With  
 
   
 
   
Riga 27: Riga 27:
 
   With rc
 
   With rc
 
     If Not .Contains(Mouse.X, Mouse.Y) Then Return  
 
     If Not .Contains(Mouse.X, Mouse.Y) Then Return  
     .X = Mouse.X - spx
+
     .X = Mouse.X - x
     .Y = Mouse.Y - spy
+
     .Y = Mouse.Y - y
   End With  
+
   End With
   DrawingArea1.Refresh
+
   With DrawingArea1
    
+
  .Mouse = 18
 +
  .Refresh
 +
   End With
 +
 +
'''End'''
 +
 +
'''Public''' Sub DrawingArea1_MouseUp()
 +
 +
  DrawingArea1.Mouse = Mouse.Default
 +
 
  '''End'''
 
  '''End'''
 
   
 
   
Riga 44: Riga 53:
 
   
 
   
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
=Note=
 +
[1] Vedere anche: [[Spostare_con_il_mouse_un'immagine_in_una_DrawingArea|Spostare con il mouse un'immagine in una DrawingArea]]

Versione delle 17:47, 27 nov 2021

Nel seguente esempio si potrà spostare con il mouse sulla superficie di una DrawingArea un rettangolo (o un quadrato) precedentemente disegnato.
In particolare durante lo spostamento del rettangolo il puntatore del mouse resterà laddove si è cliccato all'interno del rettangolo.
Si farà uso delle risorse della Classe "Rect" per operare idealmente sul rettangolo che sarà disegnato e spostato sulla DrawingArea. [Nota 1]

Private rc As Rect
Private x As Short
Private y As Short

Public Sub _new()

' Viene creato un Oggetto del tipo "Rect", quale rettangolo ideale i cui parametri saranno passati al Metodo ".Rectangle()" della "DrawingArea" per il disegno effettivo del quadrilatero:
 rc = New Rect((DrawingArea1.W / 2) - 20, (DrawingArea1.H / 2) - 10, 40, 20)

End

Public Sub DrawingArea1_MouseDown()

 With rc
   If Not .Contains(Mouse.X, Mouse.Y) Then Return 
   x = Mouse.X - .X
   y = Mouse.Y - .Y
 End With 

End

Public Sub DrawingArea1_MouseMove()

 With rc
   If Not .Contains(Mouse.X, Mouse.Y) Then Return 
   .X = Mouse.X - x
   .Y = Mouse.Y - y
 End With
 With DrawingArea1
  .Mouse = 18
  .Refresh
 End With

End

Public Sub DrawingArea1_MouseUp()

 DrawingArea1.Mouse = Mouse.Default

End

Public Sub DrawingArea1_Draw()

 With Paint
   .Brush = .Color(Color.Red)
   .Rectangle(rc.X, rc.Y, rc.W, rc.H, 0)
   .Fill
   .End
 End With

End


Note

[1] Vedere anche: Spostare con il mouse un'immagine in una DrawingArea