Spostare con il mouse un'ellisse in una DrawingArea
Da Gambas-it.org - Wikipedia.
Versione del 8 dic 2021 alle 18:24 di Vuott (Discussione | contributi) (Creata pagina con "Nel seguente esempio si potrà spostare con il mouse sulla superficie di una ''DrawingArea'' un'ellisse precedentemente disegnata. <SUP>[[[#Note|Nota 1]]]</sup> Pri...")
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 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 .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