Creare, spostare e distruggere un'immagine in una DrawingArea
Da Gambas-it.org - Wikipedia.
Versione del 19 giu 2023 alle 15:52 di Vuott (Discussione | contributi) (Creata pagina con "Mostriamo un possibile codice per creare più immagini, spostare e distruggere delle immagini sulla ''DrawingArea''. <BR>Gli Oggetti di tipo ''Image'' creati sono assegnati a...")
Mostriamo un possibile codice per creare più immagini, spostare e distruggere delle immagini sulla DrawingArea.
Gli Oggetti di tipo Image creati sono assegnati a un vettore di tipo "Image[]".
Subito dopo la creazione di una singola immagine, mantenendo premuto il tasto di sinistra del mouse, e possibile spostarla sempre con il mouse sulla superficie della DrawingArea.
Cliccando invece con il tasto destro si distruggerà l'Oggetto Image contenuto nell'ultimo elemento corrente del vettore di tipo "Image[]".
Private im As Image Private iimm As New Image[] Private xx As New Short[] Private yy As New Short[] Public Sub Form_Open() im = New Image(16, 26, Color.Transparent, Image.Standard) With Paint .Begin(im) .Font.Size = 24 .Brush = .Color(Color.Blue) .DrawText(String.Chr(&1d15f), 0, 14, 0, 0, Align.Center) .DrawText(String.Chr(&1d16e), 8, 14, 0, 0, Align.Center) .End End With End Public Sub DrawingArea1_MouseDown() If Mouse.Right Then If iimm.Count > 0 Then iimm.Remove(iimm.Max) xx.Remove(xx.Max) yy.Remove(yy.Max) Else Return Endif Else xx.Push(Mouse.X) yy.Push(Mouse.Y - 24) iimm.Push(im) Endif DrawingArea1.Refresh End Public Sub DrawingArea1_MouseMove() If Mouse.Right Then Return xx[xx.Max] = Mouse.X yy[yy.Max] = Mouse.Y - 24 DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() Dim i As Integer With Paint For i = 0 To iimm.Max .DrawImage(iimm[i], xx[i], yy[i], im.W, im.H, Align.Center) Next .End End With End