Spostare con il mouse un cerchio in una DrawingArea
Vai alla navigazione
Vai alla ricerca
Nel seguente esempio si potrà spostare con il mouse sulla superficie di una DrawingArea un cerchio precedentemente disegnato. [Nota 1]
Private Const RAGGIO As Float = 50.0 Private x As Short = 100 Private y As Short = 100 Private difx As Short = -1 Private dify As Short Public Sub _new() x = (DrawingArea1.W / 2) - (RAGGIO / 2) y = (DrawingArea1.H / 2) - (RAGGIO / 2) End Public Sub DrawingArea1_MouseDown() ' Verifica se il punto ove si è cliccato con il mouse non è esterno alla circonferenza: If Sqr(((Mouse.X - x) ^ 2) + ((Mouse.Y - y) ^ 2)) > RAGGIO Then Return difx = x - Mouse.X dify = y - Mouse.Y End Public Sub DrawingArea1_MouseMove() ' Se il punto, ove si è cliccato con il mouse è esterno alla circonferenza, allora la variabile "difx" non ha cambiato il valore assegnatogli dall'ultimo Evento "_MouseUp()": If difx == -1 Then Return x = Mouse.X + difx y = Mouse.Y + dify With DrawingArea1 .Mouse = 18 .Refresh End With End Public Sub DrawingArea1_MouseUp() difx = -1 DrawingArea1.Mouse = Mouse.Default End Public Sub DrawingArea1_Draw() With Paint .Arc(x, y, RAGGIO, Rad(0), Rad(360), False) .stroke .end End With End
Note
[1] Vedere anche:
- Spostare con il mouse un rettangolo in una DrawingArea
- Spostare con il mouse un'immagine in una DrawingArea