Spostare con il mouse un'ellisse in una DrawingArea
Vai alla navigazione
Vai alla ricerca
Nel seguente esempio si potrà spostare con il mouse sulla superficie di una DrawingArea un'ellisse precedentemente disegnata. [Nota 1]
Private Const RAGGIO_MAGGIORE As Float = 200.0 Private Const RAGGIO_MINORE As Float = 100.0 Private x As Short Private y As Short Private difx As Short = -1 Private dify As Short Public Sub _new() x = (DrawingArea1.W / 2) - (RAGGIO_MAGGIORE / 2) y = (DrawingArea1.H / 2) - (RAGGIO_MINORE / 2) End Public Sub DrawingArea1_MouseDown() ' Verifica se il punto ove si è cliccato con il mouse non è esterno al rettangolo di selezione dell'ellisse: If (Mouse.X < x) Or (Mouse.X > (x + RAGGIO_MAGGIORE)) Or (Mouse.Y < y) Or (Mouse.Y > (y + RAGGIO_MINORE)) 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 al rettangolo di selezione dell'ellisse, 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 .Ellipse(x, y, RAGGIO_MAGGIORE, RAGGIO_MINORE, 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 cerchio in una DrawingArea