Differenze tra le versioni di "Selezionare con lo spostamento del mouse un'area di un oggetto"
(Creata pagina con "Il caso in questione è quello in vui si ha un Oggetto (poniamo il caso una ''ImmageView'' posta su un ''Form'') e si desidera selezionare un'area quadrangolare di detto Ogget...") |
|||
Riga 44: | Riga 44: | ||
'''Public''' Sub Imageview1_MouseMove() | '''Public''' Sub Imageview1_MouseMove() | ||
− | <FONT Color=gray>' ''Lo spostamento del mouse, mantenendo cliccato, dimensiona dinamicamente il "Panel", definendo così anche l'area da individuare:''</font> | + | <FONT Color=gray>' ''Lo spostamento del mouse, mantenendo cliccato, dimensiona dinamicamente il "Panel", definendo così anche l'area da individuare dell'Oggetto "ImageView":''</font> |
With pn | With pn | ||
.X = x | .X = x |
Versione delle 09:38, 1 giu 2020
Il caso in questione è quello in vui si ha un Oggetto (poniamo il caso una ImmageView posta su un Form) e si desidera selezionare un'area quadrangolare di detto Oggetto con il mouse.
In particolare in questo caso si desidera che la selezione tramite il puntatore del mouse avvenga cliccando sopra un punto dell'Oggetto, del quale selezionare un'area, e poi spostando il puntatore del mouse sull'Oggetto medesimo per definire l'area.
Inoltre si vuole che durante lo spostamento del puntatore del mouse sia visivamente mostrato il perimetro della definizione in atto dell'area. Tale visualizzazione potrà essere ottenuta, ad esempio, usando un Panel, al quale sia assegnato un utile valore alla sua proprietà ".Border".
Mostriamo un semplice e generico codice utile a tale scopo:
Private iv As ImageView Private pn As Panel Private x As Short Private y As Short Public Sub Form_Open() With Me .X = 0 .Y = 0 .W = Screen.AvailableWidth .H = Screen.AvailableHeight End With With iv = New ImageView(Me) As "Imageview1" .X = 0 .Y = 0 .W = Me.W .H = Me.H End With End Public Sub Imageview1_MouseDown() x = Mouse.X y = Mouse.Y With pn = New Panel(Me) As "Pannello" .Border = Border.Plain ' Volendo, si può dare anche un leggero colore semitrasparente al "Panel" che si va definendo: .Background = Color.SetRGB(Color.Yellow, 200, 200, 0, 200) End With End Public Sub Imageview1_MouseMove() ' Lo spostamento del mouse, mantenendo cliccato, dimensiona dinamicamente il "Panel", definendo così anche l'area da individuare dell'Oggetto "ImageView": With pn .X = x .Y = y .W = Mouse.X - x .H = Mouse.Y - y End With End