Spostare o ridimensionare un oggetto a seconda del punto ove si clicca
Da Gambas-it.org - Wikipedia.
Versione del 24 set 2019 alle 16:00 di Vuott (Discussione | contributi)
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.
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:
Private spx As Short Private spy As Short Public Sub TextBox1_MouseMove() Select Case Mouse.X ' 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: Case 0 To (TextBox1.W / 5) * 4 With TextBox1 .X = .X + Mouse.X - spx .Y = .Y + Mouse.Y - spy End With ' 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: 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 End Public Sub TextBox1_MouseUp() TextBox1.Mouse = Mouse.Default End