Differenze tra le versioni di "Drag-Drop di un'immagine in una DrawingArea"
(23 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
+ | =Drag&Drop di un'immagine all'interno della medesima ''DrawingArea''= | ||
+ | In questo caso lo spostamento con il mouse mediante le risorse del ''Drag&Drop'' di un'immagine, presente in una ''DrawingArea'', avviene all'interno della medesima ''DrawingArea'': | ||
+ | Private im As Image | ||
+ | Private bo As Boolean | ||
+ | Private x As Short | ||
+ | Private y As Short | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | <FONT Color=gray>' ''Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop():''</font> | ||
+ | DrawingArea1.Drop = True | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Draw() | ||
+ | |||
+ | <FONT Color=gray>' ''Quando viene spostata l'immagine con il mouse all'interno della "DrawingArea", essa viene cancellata dalle coordinate ove era stata impostata all'inizio o rilasciata dopo il precedente spostamento::''</font> | ||
+ | If bo Then | ||
+ | With Paint | ||
+ | .FillRect(x, y, im.W, im.H, Color.Background) | ||
+ | .End | ||
+ | End With | ||
+ | Else | ||
+ | <FONT Color=gray>' ''Iniziale impostazione dell'immagine all'interno della "DrawingArea":''</font> | ||
+ | im = Picture["icon:/32/book"].Image | ||
+ | <FONT Color=gray>' ''Mostra l'immagine alle coordinate x=0, y=0:''</font> | ||
+ | With Paint | ||
+ | .DrawImage(im, x, y, im.W, im.H) | ||
+ | .End | ||
+ | End With | ||
+ | Endif | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_MouseDrag() | ||
+ | |||
+ | bo = True | ||
+ | <FONT Color=gray>' ''Iniziato lo spostamento dell'immagine, va a ridisegnare la "DrawingArea", per cancellare l'immagine impostata inizialmente o rilasciata dopo il precedente spostamento::''</font> | ||
+ | DrawingArea1.Refresh | ||
+ | |||
+ | Drag.Icon = im.Picture | ||
+ | |||
+ | <FONT Color=gray>' ''Preleva e trascina l'Oggetto Image, ossia l'immagine presente sulla "DrawingArea":''</font> | ||
+ | Last.Drag(im) | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Drop() | ||
+ | |||
+ | <FONT Color=gray>' ''Assegna alle variabili "x" e "y" le rispettive coordinate, ove l'immagine è stata rilasciata sull'altra "DrawingArea":''</font> | ||
+ | x = Drag.X | ||
+ | y = Drag.Y | ||
+ | bo = False | ||
+ | DrawingArea1.Refresh | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | =Drag&Drop di un'immagine da un Oggetto grafico in una ''DrawingArea''= | ||
+ | |||
+ | ==Drag&Drop da una ''PictureBox'' in una ''DrawingArea''== | ||
Mostriamo un possibile codice per effettuare un semplice Drag-Drop di un'immagine da una ''PictureBox'' in una ''DrawingArea''. | Mostriamo un possibile codice per effettuare un semplice Drag-Drop di un'immagine da una ''PictureBox'' in una ''DrawingArea''. | ||
− | Private | + | Private im As Image |
Private x As Short | Private x As Short | ||
Private y As Short | Private y As Short | ||
− | + | Public Sub Form_Open() | |
<FONT Color=gray>' ''Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop():''</font> | <FONT Color=gray>' ''Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop():''</font> | ||
DrawingArea1.Drop = True | DrawingArea1.Drop = True | ||
− | PictureBox1. | + | PictureBox1.Image = Image.Load("<FONT Color=darkgreen>''/percorso/del/file/immagine''</font>") |
− | ''' | + | End |
+ | |||
+ | |||
+ | Public Sub PictureBox1_MouseDrag() | ||
+ | |||
+ | <FONT Color=gray>' ''Preleva e trascina l'immagine dalla "PictureBox":''</font> | ||
+ | Drag.Icon = Last.Image.Picture | ||
+ | Last.Drag(Drag.Icon.Image) | ||
+ | End | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Public Sub DrawingArea1_Drop() | ||
− | + | im = Drag.Data | |
− | |||
− | |||
x = Drag.X | x = Drag.X | ||
y = Drag.Y | y = Drag.Y | ||
− | + | ||
DrawingArea1.Refresh | DrawingArea1.Refresh | ||
− | + | ||
− | + | End | |
− | + | Public Sub DrawingArea1_Draw() <FONT Color=gray>' ''Si disegna l'immagine nella "DrawingArea"''</font> | |
− | If Object.Address( | + | If Object.Address(im) == 0 Then Return |
With Paint | With Paint | ||
− | . | + | .DrawImage(im, x, y, im.W, im.H) |
.End | .End | ||
End With | End With | ||
− | + | End | |
− | + | ===Conservare le immagini precedentemente trascinate=== | |
Per conservare - durante un nuovo rilascio del testo nella ''DrawingArea'' - le immagini eventualmente già trascinate e rilasciate, bisognerà inserire i valori (ed in particolare: la ''Picture'' e le coordinate di rilascio) di ciascun trascinamento effettuato in una variabile di tipo ''Struttura'', che a sua volta dovrà essere memorizzata all'interno di una variabile vettoriale del tipo della ''Struttura'' dichiarata nel programma. | Per conservare - durante un nuovo rilascio del testo nella ''DrawingArea'' - le immagini eventualmente già trascinate e rilasciate, bisognerà inserire i valori (ed in particolare: la ''Picture'' e le coordinate di rilascio) di ciascun trascinamento effettuato in una variabile di tipo ''Struttura'', che a sua volta dovrà essere memorizzata all'interno di una variabile vettoriale del tipo della ''Struttura'' dichiarata nel programma. | ||
Riga 55: | Riga 120: | ||
drx As Short | drx As Short | ||
dry As Short | dry As Short | ||
− | + | im As Image | |
End Struct | End Struct | ||
Private iimm As New IMMAGINI[] | Private iimm As New IMMAGINI[] | ||
− | + | Public Sub Form_Open() | |
<FONT Color=gray>' ''Attiviamo la capacità della "DrawingArea" di sollevare l'evento "_Drop():''</font> | <FONT Color=gray>' ''Attiviamo la capacità della "DrawingArea" di sollevare l'evento "_Drop():''</font> | ||
DrawingArea1.Drop = True | DrawingArea1.Drop = True | ||
− | + | ||
− | + | PictureBox1.Image = Image.Load("<FONT Color=darkgreen>''/percorso/del/file/immagine''</font>") | |
+ | |||
+ | End | ||
− | + | Public Sub PictureBox1_MouseDrag() | |
<FONT Color=gray>' ''Preleviamo e trasciniamo l'immagine dalla "PictureBox":''</font> | <FONT Color=gray>' ''Preleviamo e trasciniamo l'immagine dalla "PictureBox":''</font> | ||
− | Drag.Icon = Last.Picture | + | Drag.Icon = Last.Image.Picture |
− | Last.Drag( | + | Last.Drag(Drag.Icon.Image) |
− | + | End | |
− | + | Public Sub DrawingArea1_Drop() | |
Dim im As IMMAGINI | Dim im As IMMAGINI | ||
Riga 85: | Riga 152: | ||
.drx = Drag.X | .drx = Drag.X | ||
.dry = Drag.Y | .dry = Drag.Y | ||
− | .pc = Drag.Data.Picture | + | .im = Drag.Data |
+ | End With | ||
+ | |||
+ | iimm.Push(im) | ||
+ | |||
+ | DrawingArea1.Refresh | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Draw() | ||
+ | |||
+ | Dim n As Integer | ||
+ | |||
+ | <FONT Color=gray>' ''Ridisegna le immagini precedentemente rilasciate nella "DrawingArea":''</font> | ||
+ | For n = 0 To iimm.Max | ||
+ | Paint.DrawImage(iimm[n].im, iimm[n].drX, iimm[n].drY) | ||
+ | Next | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | ==Drag&Drop da una ''DrawingArea'' a un'altra== | ||
+ | Mostriamo un possibile codice per effettuare il Drag-Drop del disegno da una ''DrawingArea'' a un'altra ''DrawingArea''. | ||
+ | Private im As Image | ||
+ | Private bo As Boolean | ||
+ | Private x As Short | ||
+ | Private y As Short | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | <FONT Color=gray>' ''Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop():''</font> | ||
+ | DrawingArea1.Drop = True | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea2_Draw() | ||
+ | |||
+ | im = Picture["icon:/32/book"].Image | ||
+ | |||
+ | <FONT Color=gray>' ''Mostra l'immagine alle coordinate x=0, y=0:''</font> | ||
+ | With Paint | ||
+ | .DrawImage(im, 0, 0, im.W, im.H) | ||
+ | .End | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea2_MouseDrag() | ||
+ | |||
+ | <FONT Color=gray>' ''Trasforma l'Oggetto "Picture" in un Oggetto "Image":''</font> | ||
+ | Drag.Icon = im.Picture | ||
+ | |||
+ | <FONT Color=gray>' ''Quindi lo preleva e lo trascina:''</font> | ||
+ | Last.Drag(im) | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Drop() | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | <FONT Color=gray>' ''Assegna alle variabili "x" e "y" le rispettive coordinate, ove l'immagine è stata rilasciata sull'altra "DrawingArea":''</font> | ||
+ | x = Drag.X | ||
+ | y = Drag.Y | ||
+ | |||
+ | DrawingArea1.Refresh | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Draw() ' Si disegna l'immagine nella "DrawingArea" | ||
+ | |||
+ | If bo == False Then Return | ||
+ | |||
+ | <FONT Color=gray>' ''Mostra l'immagine alle coordinate "x" e "y", ossia ove la stessa è stata rilasciata:''</font> | ||
+ | With Paint | ||
+ | .DrawImage(im, x, y, im.W, im.H) | ||
+ | .End | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | ===Drag&Drop da più ''DrawingArea'' ad una ''DrawingArea'' principale=== | ||
+ | Mostriamo un possibile codice per effettuare il Drag-Drop del disegno presente in varie ''DrawingArea'' in una ''DrawingArea'' principale. | ||
+ | <BR>Poniamo il caso di avere una ''DrawingArea'' principale, nella quale saranno rilasciati i disegni presenti in altre quattro ''DrawingArea''. Assumiamo che le quattro ''DrawingArea'', dalle quali sarà trascinato il rispettivo disegno, appartengano ad un unico Gruppo degli Eventi (ad esempio "AreaDisegno"). | ||
+ | Public Struct IMMAGINI | ||
+ | drx As Short | ||
+ | dry As Short | ||
+ | p As Picture | ||
+ | End Struct | ||
+ | Private iimm As New IMMAGINI[] | ||
+ | Private ddrr As New DrawingArea[4] | ||
+ | Private pc As New Picture[] | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | <FONT Color=gray>' ''Attiva la capacità della "DrawingArea" principale di sollevare l'evento "_Drop():''</font> | ||
+ | DrawingArea1.Drop = True | ||
+ | |||
+ | <FONT Color=gray>' ''Assegna ogni "DrawingArea" secondaria a un unico Gruppo degli Eventi (ad esempio "Dr"):''</font> | ||
+ | Object.Attach(DrawingArea2, Me, "AreaDisegno") | ||
+ | Object.Attach(DrawingArea3, Me, "AreaDisegno") | ||
+ | Object.Attach(DrawingArea4, Me, "AreaDisegno") | ||
+ | Object.Attach(DrawingArea5, Me, "AreaDisegno") | ||
+ | |||
+ | <FONT Color=gray>' ''Assegna ogni "DrawingArea" esistente ad un elemento di un vettore di tipo "DrawingArea[]", al fine di collegare il suo Indice degli elementi a quello del vettore di tipo "Picture[]":''</font> | ||
+ | ddrr[0] = DrawingArea2 | ||
+ | ddrr[1] = DrawingArea3 | ||
+ | ddrr[2] = DrawingArea4 | ||
+ | ddrr[3] = DrawingArea5 | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub AreaDisegno_Draw() | ||
+ | |||
+ | <FONT Color=gray>' ''Assegna ad ogni "DrawingArea" esistente un'immagine, che potrà essere trasferita e rilasciata nella "DrawingArea" principale:''</font> | ||
+ | Select Case Last.Name | ||
+ | Case "DrawingArea2" | ||
+ | pc.Push(Picture["icon:/32/book"]) | ||
+ | Case "DrawingArea3" | ||
+ | pc.Push(Picture["icon:/32/call"]) | ||
+ | Case "DrawingArea4" | ||
+ | pc.Push(Picture["icon:/32/battery"]) | ||
+ | Case "DrawingArea5" | ||
+ | pc.Push(Picture["icon:/32/audio"]) | ||
+ | End Select | ||
+ | |||
+ | With Paint | ||
+ | .DrawPicture(pc[pc.Max], 1, 1, 32, 32) | ||
+ | .End | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub AreaDisegno_MouseDrag() | ||
+ | |||
+ | <FONT Color=gray>' ''Preleviamo e trasciniamo l'immagine da una "DrawingArea":''</font> | ||
+ | Drag.Icon = pc[ddrr.Find(Last)] | ||
+ | |||
+ | Last.Drag(pc[ddrr.Find(Last)].Image) | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Drop() | ||
+ | |||
+ | Dim im As IMMAGINI | ||
+ | |||
+ | With im = New IMMAGINI | ||
+ | .drx = Drag.X | ||
+ | .dry = Drag.Y | ||
+ | .p = Drag.Data.Picture | ||
End With | End With | ||
Riga 92: | Riga 318: | ||
DrawingArea1.Refresh | DrawingArea1.Refresh | ||
− | + | End | |
− | + | Public Sub DrawingArea1_Draw() ' Si disegna l'immagine nella "DrawingArea":''</font> | |
Dim n As Integer | Dim n As Integer | ||
Riga 101: | Riga 327: | ||
<FONT Color=gray>' ''Ridisegna le immagini precedentemente rilasciate nella "DrawingArea":''</font> | <FONT Color=gray>' ''Ridisegna le immagini precedentemente rilasciate nella "DrawingArea":''</font> | ||
For n = 0 To iimm.Max | For n = 0 To iimm.Max | ||
− | Paint.DrawPicture(iimm[n]. | + | Paint.DrawPicture(iimm[n].p, iimm[n].drX, iimm[n].drY) |
Next | Next | ||
− | + | End |
Versione attuale delle 12:44, 21 nov 2024
Indice
Drag&Drop di un'immagine all'interno della medesima DrawingArea
In questo caso lo spostamento con il mouse mediante le risorse del Drag&Drop di un'immagine, presente in una DrawingArea, avviene all'interno della medesima DrawingArea:
Private im As Image Private bo As Boolean Private x As Short Private y As Short Public Sub Form_Open() ' Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop(): DrawingArea1.Drop = True End Public Sub DrawingArea1_Draw() ' Quando viene spostata l'immagine con il mouse all'interno della "DrawingArea", essa viene cancellata dalle coordinate ove era stata impostata all'inizio o rilasciata dopo il precedente spostamento:: If bo Then With Paint .FillRect(x, y, im.W, im.H, Color.Background) .End End With Else ' Iniziale impostazione dell'immagine all'interno della "DrawingArea": im = Picture["icon:/32/book"].Image ' Mostra l'immagine alle coordinate x=0, y=0: With Paint .DrawImage(im, x, y, im.W, im.H) .End End With Endif End Public Sub DrawingArea1_MouseDrag() bo = True ' Iniziato lo spostamento dell'immagine, va a ridisegnare la "DrawingArea", per cancellare l'immagine impostata inizialmente o rilasciata dopo il precedente spostamento:: DrawingArea1.Refresh Drag.Icon = im.Picture ' Preleva e trascina l'Oggetto Image, ossia l'immagine presente sulla "DrawingArea": Last.Drag(im) End Public Sub DrawingArea1_Drop() ' Assegna alle variabili "x" e "y" le rispettive coordinate, ove l'immagine è stata rilasciata sull'altra "DrawingArea": x = Drag.X y = Drag.Y bo = False DrawingArea1.Refresh End
Drag&Drop di un'immagine da un Oggetto grafico in una DrawingArea
Drag&Drop da una PictureBox in una DrawingArea
Mostriamo un possibile codice per effettuare un semplice Drag-Drop di un'immagine da una PictureBox in una DrawingArea.
Private im As Image Private x As Short Private y As Short Public Sub Form_Open() ' Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop(): DrawingArea1.Drop = True PictureBox1.Image = Image.Load("/percorso/del/file/immagine") End Public Sub PictureBox1_MouseDrag() ' Preleva e trascina l'immagine dalla "PictureBox": Drag.Icon = Last.Image.Picture Last.Drag(Drag.Icon.Image) End Public Sub DrawingArea1_Drop() im = Drag.Data x = Drag.X y = Drag.Y DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() ' Si disegna l'immagine nella "DrawingArea" If Object.Address(im) == 0 Then Return With Paint .DrawImage(im, x, y, im.W, im.H) .End End With End
Conservare le immagini precedentemente trascinate
Per conservare - durante un nuovo rilascio del testo nella DrawingArea - le immagini eventualmente già trascinate e rilasciate, bisognerà inserire i valori (ed in particolare: la Picture e le coordinate di rilascio) di ciascun trascinamento effettuato in una variabile di tipo Struttura, che a sua volta dovrà essere memorizzata all'interno di una variabile vettoriale del tipo della Struttura dichiarata nel programma.
Ogni qualvolta avviene il disegno all'interno della DrawingArea della nuova immagine trascinata e rilasciata, bisognerà mediante un apposito ciclo far ridisegnare dalla DrawingArea anche le altre immagini sino a quel momento trascinati e disegnati, sulla base dei valori memorizzati - per ciascuna immagine trascinata - in un'apposita variabile del tipo della Struttura dichiarata.
Mostriamo un semplice codice, nel quale poniamo il caso di avere più PictureBox, appartenenti al medesimo Gruppo di Eventi (ad esempio "Pic") ed aventi ciascuna una diversa immagine da trascinare e rilasciare nella DrawingArea.
Public Struct IMMAGINI drx As Short dry As Short im As Image End Struct Private iimm As New IMMAGINI[] Public Sub Form_Open() ' Attiviamo la capacità della "DrawingArea" di sollevare l'evento "_Drop(): DrawingArea1.Drop = True PictureBox1.Image = Image.Load("/percorso/del/file/immagine") End Public Sub PictureBox1_MouseDrag() ' Preleviamo e trasciniamo l'immagine dalla "PictureBox": Drag.Icon = Last.Image.Picture Last.Drag(Drag.Icon.Image) End Public Sub DrawingArea1_Drop() Dim im As IMMAGINI ' All'atto del rilascio del testo viene creata una variabile del tipo della "Struttura" dichiarata. Inoltre vengono assegnate ai corrispondenti membri della variabile "Struttura" l'immagine trascinata, nonché le coordinate X ed Y di rilascio dell'immagine medesima all'interno della "DrawingArea". I valori contenuti nei predetti membri della "Struttura", saranno utilizzati per disegnare l'immagine nella "DrawingArea". With im = New IMMAGINI .drx = Drag.X .dry = Drag.Y .im = Drag.Data End With iimm.Push(im) DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() Dim n As Integer ' Ridisegna le immagini precedentemente rilasciate nella "DrawingArea": For n = 0 To iimm.Max Paint.DrawImage(iimm[n].im, iimm[n].drX, iimm[n].drY) Next End
Drag&Drop da una DrawingArea a un'altra
Mostriamo un possibile codice per effettuare il Drag-Drop del disegno da una DrawingArea a un'altra DrawingArea.
Private im As Image Private bo As Boolean Private x As Short Private y As Short Public Sub Form_Open() ' Attiva la capacità della "DrawingArea" di sollevare l'evento "_Drop(): DrawingArea1.Drop = True End Public Sub DrawingArea2_Draw() im = Picture["icon:/32/book"].Image ' Mostra l'immagine alle coordinate x=0, y=0: With Paint .DrawImage(im, 0, 0, im.W, im.H) .End End With End Public Sub DrawingArea2_MouseDrag() ' Trasforma l'Oggetto "Picture" in un Oggetto "Image": Drag.Icon = im.Picture ' Quindi lo preleva e lo trascina: Last.Drag(im) End Public Sub DrawingArea1_Drop() bo = True ' Assegna alle variabili "x" e "y" le rispettive coordinate, ove l'immagine è stata rilasciata sull'altra "DrawingArea": x = Drag.X y = Drag.Y DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() ' Si disegna l'immagine nella "DrawingArea" If bo == False Then Return ' Mostra l'immagine alle coordinate "x" e "y", ossia ove la stessa è stata rilasciata: With Paint .DrawImage(im, x, y, im.W, im.H) .End End With End
Drag&Drop da più DrawingArea ad una DrawingArea principale
Mostriamo un possibile codice per effettuare il Drag-Drop del disegno presente in varie DrawingArea in una DrawingArea principale.
Poniamo il caso di avere una DrawingArea principale, nella quale saranno rilasciati i disegni presenti in altre quattro DrawingArea. Assumiamo che le quattro DrawingArea, dalle quali sarà trascinato il rispettivo disegno, appartengano ad un unico Gruppo degli Eventi (ad esempio "AreaDisegno").
Public Struct IMMAGINI drx As Short dry As Short p As Picture End Struct Private iimm As New IMMAGINI[] Private ddrr As New DrawingArea[4] Private pc As New Picture[] Public Sub Form_Open() ' Attiva la capacità della "DrawingArea" principale di sollevare l'evento "_Drop(): DrawingArea1.Drop = True ' Assegna ogni "DrawingArea" secondaria a un unico Gruppo degli Eventi (ad esempio "Dr"): Object.Attach(DrawingArea2, Me, "AreaDisegno") Object.Attach(DrawingArea3, Me, "AreaDisegno") Object.Attach(DrawingArea4, Me, "AreaDisegno") Object.Attach(DrawingArea5, Me, "AreaDisegno") ' Assegna ogni "DrawingArea" esistente ad un elemento di un vettore di tipo "DrawingArea[]", al fine di collegare il suo Indice degli elementi a quello del vettore di tipo "Picture[]": ddrr[0] = DrawingArea2 ddrr[1] = DrawingArea3 ddrr[2] = DrawingArea4 ddrr[3] = DrawingArea5 End Public Sub AreaDisegno_Draw() ' Assegna ad ogni "DrawingArea" esistente un'immagine, che potrà essere trasferita e rilasciata nella "DrawingArea" principale: Select Case Last.Name Case "DrawingArea2" pc.Push(Picture["icon:/32/book"]) Case "DrawingArea3" pc.Push(Picture["icon:/32/call"]) Case "DrawingArea4" pc.Push(Picture["icon:/32/battery"]) Case "DrawingArea5" pc.Push(Picture["icon:/32/audio"]) End Select With Paint .DrawPicture(pc[pc.Max], 1, 1, 32, 32) .End End With End Public Sub AreaDisegno_MouseDrag() ' Preleviamo e trasciniamo l'immagine da una "DrawingArea": Drag.Icon = pc[ddrr.Find(Last)] Last.Drag(pc[ddrr.Find(Last)].Image) End Public Sub DrawingArea1_Drop() Dim im As IMMAGINI With im = New IMMAGINI .drx = Drag.X .dry = Drag.Y .p = Drag.Data.Picture End With iimm.Push(im) DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() ' Si disegna l'immagine nella "DrawingArea":</font> Dim n As Integer ' Ridisegna le immagini precedentemente rilasciate nella "DrawingArea": For n = 0 To iimm.Max Paint.DrawPicture(iimm[n].p, iimm[n].drX, iimm[n].drY) Next End