Differenze tra le versioni di "Spostare o ridimensionare un oggetto a seconda del punto ove si clicca"

Da Gambas-it.org - Wikipedia.
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Vediamo il caso esemplificativo in cui un oggetto verrà spostato oppure ridimensionato a seconda del punto dell'oggetto medesimo, nel quale si clicca e si agisce con il puntatore del mouse.
+
Vediamo il caso esemplificativo in cui un oggetto verrà spostato oppure ridimensionato a seconda del punto dell'oggetto medesimo, nel quale si clicca al suo interno e si agisce con il puntatore del mouse.
  
 
Nell'esempio abbiamo un ''TextBox'' sul ''Form''. Nel codice si è stabilito che, se si cliccherà ed agirà con il mouse all'interno dei 4/5 dell'oggetto, considerando l'area dal margine sinistro verso destra, il ''TextBox'' subirà uno spostamento sul ''Form''. Se invece verrà interessata la restante quinta parte dell'area del ''TextBox'' (quella tutta a destra), allora l'oggetto subirà una modifica delle sue dimensioni sulla base, ovviamente, dell'azione del mouse su di esso.
 
Nell'esempio abbiamo un ''TextBox'' sul ''Form''. Nel codice si è stabilito che, se si cliccherà ed agirà con il mouse all'interno dei 4/5 dell'oggetto, considerando l'area dal margine sinistro verso destra, il ''TextBox'' subirà uno spostamento sul ''Form''. Se invece verrà interessata la restante quinta parte dell'area del ''TextBox'' (quella tutta a destra), allora l'oggetto subirà una modifica delle sue dimensioni sulla base, ovviamente, dell'azione del mouse su di esso.
  
 
La parte essenziale del codice potrà essere la seguente:
 
La parte essenziale del codice potrà essere la seguente:
  Private spx As Short
+
  Public Sub TextBox1_MouseMove()
Private spy As Short
 
 
   
 
   
+
  <FONT color=gray>' ''Se si clicca nella parte sinistra della "TextBox", pari ai 4/5 dell'intera dimensione dell'Oggetto, allora la "TextBox" potrà essere spostata sul "Form":''</font>
'''Public''' Sub TextBox1_MouseDown()
+
  If Mouse.X < (TextBox1.W * 0.8) Then
 
+
    With TextBox1
  spx = Mouse.X
+
      .X = .X + Mouse.X - Mouse.StartX
  spy = Mouse.Y
+
      .Y = .Y + Mouse.Y - Mouse.StartY
 
+
    End With
'''End'''
+
  Else
+
  <FONT color=gray>' ''Se si clicca e si sposta il Mouse nella restante parte a destra della "TextBox", pari a 1/5 della dimensione dell'Oggetto, allora si otterrà un ridimensionamento della "TextBox":''</font>
+
     TextBox1.Resize(Mouse.X, Mouse.Y)
'''Public''' Sub TextBox1_MouseMove()
+
   Endif
 
  Select Case Mouse.X
 
 
  <FONT color=gray>' ''Se si clicca e si sposta il puntatore del mouse nella parte sinistra del "TextBox",''
 
' ''pari a 4/5 della dimensione totale dell'oggetto, si avrà il suo spostamento sul Form:''</font>
 
    Case 0 To (TextBox1.W / 5) * 4
 
      With TextBox1
 
        .X = .X + Mouse.X - spx
 
        .Y = .Y + Mouse.Y - spy
 
      End With
 
 
  <FONT color=gray>' ''Se si clicca e si sposta il puntatore del mouse nella restante parte a destra del "TextBox",''
 
' ''pari a 1/5 della dimensione totale dell'oggetto, si avrà un suo ridimensionamento:''</font>
 
     Case ((TextBox1.W / 5) * 4) + 1 To TextBox1.W
 
      With TextBox1
 
        .W = Mouse.X + 2
 
        .H = Mouse.Y + 2
 
      End With
 
 
   End Select
 
 
   
 
   
 
   TextBox1.Mouse = 18
 
   TextBox1.Mouse = 18
 
    
 
    
  '''End'''
+
  End
 
 
   
 
   
  '''Public''' Sub TextBox1_MouseUp()
+
  Public Sub TextBox1_MouseUp()
 
    
 
    
  TextBox1.Mouse = Mouse.Default
+
  TextBox1.Mouse = Mouse.Arrow
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 08:02, 14 giu 2023

Vediamo il caso esemplificativo in cui un oggetto verrà spostato oppure ridimensionato a seconda del punto dell'oggetto medesimo, nel quale si clicca al suo interno e si agisce con il puntatore del mouse.

Nell'esempio abbiamo un TextBox sul Form. Nel codice si è stabilito che, se si cliccherà ed agirà con il mouse all'interno dei 4/5 dell'oggetto, considerando l'area dal margine sinistro verso destra, il TextBox subirà uno spostamento sul Form. Se invece verrà interessata la restante quinta parte dell'area del TextBox (quella tutta a destra), allora l'oggetto subirà una modifica delle sue dimensioni sulla base, ovviamente, dell'azione del mouse su di esso.

La parte essenziale del codice potrà essere la seguente:

Public Sub TextBox1_MouseMove()

' Se si clicca nella parte sinistra della "TextBox", pari ai 4/5 dell'intera dimensione dell'Oggetto, allora la "TextBox" potrà essere spostata sul "Form":
 If Mouse.X < (TextBox1.W * 0.8) Then
   With TextBox1
     .X = .X + Mouse.X - Mouse.StartX
     .Y = .Y + Mouse.Y - Mouse.StartY
   End With
 Else
' Se si clicca e si sposta il Mouse nella restante parte a destra della "TextBox", pari a 1/5 della dimensione dell'Oggetto, allora si otterrà un ridimensionamento della "TextBox":
   TextBox1.Resize(Mouse.X, Mouse.Y)
 Endif

 TextBox1.Mouse = 18
 
End

Public Sub TextBox1_MouseUp()
 
 TextBox1.Mouse = Mouse.Arrow
 
End