Differenze tra le versioni di "Codice essenziale per effettuare il Drag-Drop di un'immagine"

Da Gambas-it.org - Wikipedia.
 
(28 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Mostriamo di seguito il codice <SPAN style="text-decoration:underline">essenziale</span> per effettuare il ''Drag-Drop'' di un'immagine da un oggetto ad un altro posti sul medesimo ''Form''.
+
Mostriamo di seguito un codice essenziali per effettuare il ''Drag&Drop'' <SUP>&#091;[[#Note|nota 1]]&#093;</sup> di un'immagine, ad esempio, da una ''PictureBox'' a un'altra.
 +
<BR>In particolare:
 +
* la ''PictureBox'', <SPAN style="text-decoration:underline">nella</span> quale verrà effettuato il rilascio dell'icona dell'immagine trascinata, deve avere la sua Proprietà ".Drop" posta a <FONT color=Darkred>''True''</font>;
 +
* la ''PictureBox'', <SPAN style="text-decoration:underline">dalla</span> quale viene ''prelevata'' e trascinata l'immagine (e quindi quella alla quale sarà applicato l'evento che scatena il ''prelevamento'' dell'immagine da trascinare), deve essere quella che ovviamente <SPAN style="text-decoration:underline">contiene</span> l'immagine;
 +
* l'Evento che consente il ''prelevamento'' dell'immagine da trascinare è <FONT color=darkred>"_MouseDrag()"</font>;
 +
* all'interno della routine di questo Evento si porrà la riga di comando: ''Drag.Icon = Last.Picture'', affinché durante il trascinamento appaia in prossimità del puntatore del mouse l'icona dell'immagine che si sta trascinando. Inoltre, sarà posta quest'altra riga: ''Last.Drag(Last.Picture.Image)'' per avviare il processo di ''trascinamento'', indicando nell'argomento del Metodo ".Drag()" che i dati, oggetto della procedura di ''Drag'', sono afferenti ad un'immagine (e non un testo);
 +
* nella routine dell'Evento "_Drop()" si assegnerà all'altra ''PictureBox'', che scatena il predetto ''Drop'', i dati dell'immagine oggetto del ''Drag''.
 +
Public Sub Form_Open() 
 +
 +
<FONT color=gray>' ''Attiviamo la capacità della "PictureBox1" di ricevere con l'Evento "_Drop()" l'immagine trascinata:''</font>
 +
  <FONT color=#B22222>PictureBox1</font>.Drop = True
 +
 +
  <FONT color=darkorange>PictureBox2</font>.Picture = Picture.Load("<FONT Color=darkgreen>''/percorso/del/file/immagine''</font>")
 +
 +
End
 +
 +
 +
Public Sub <FONT color=darkorange>PictureBox2</font>_MouseDrag() 
 +
 +
<FONT color=gray>' ''Preleviamo e trasciniamo l'immagine dalla "PictureBox2":''</font>
 +
  Drag.Icon = Last.Picture   
 +
  Last.Drag(Last.Picture.Image)
 +
<FONT color=gray>' ''...o anche:''
 +
' '''Last.Drag(Drag.Icon.Image)'''</font>
 +
 +
End
 +
 +
 +
Public Sub <FONT color=#B22222>PictureBox1</font>_Drop() 
 +
 +
<FONT color=gray>' ''Rilasciamo l'immagine nella "PictureBox1":''</font>
 +
  <FONT color=#B22222>PictureBox1</font>.Picture = Drag.Data.Picture 
 +
 +
End
  
L'esempio presuppone che sul ''Form'' vi sia su un lato un oggetto ''VPanel'', all'interno del quale sono presenti tre ''PictureBox''. Nell'IDE (per fare prima) viene assegnato a ciascuna di tali tre ''PictureBox'' il medesimo nome di Gruppo (ad esempio: pb). Quindi viene assegnata ancora a ciascuna di dette ''PictureBox'' una diversa immagine, che sarà oggetto del ''Drag-Drop''.
 
<BR>Sul ''Form'', inoltre, viene posto anche un oggetto ''ScrollView'', all'interno del quale è posta una sola ''PictureBox'', che così avrà il nome ''PictureBox4'', e che riceverà l'immagine trascinata.
 
  
Il ''Drag-Drop'' richiede che:
+
 
* l'oggetto (in questo caso lo ''ScrollView''), nel quale verrà effettuato il rilascio dell'icona dell'immagine trascinata, abbia la sua proprietà ''.Drop'' posta a <FONT color=Darkred>''True''</font>;
+
=Note=
* l'oggetto da quale viene ''prelevata'' e trascinata l'immagine, e quindi quello al quale sarà applicato l'evento che scatena l ''prelevamento'' dell'immagine da trascinare, deve essere quello che <SPAN style="text-decoration:underline">contiene</span> l'immagine (in questo caso le tre ''PictureBox'' poste nell'oggetto ''VPanel''). Se gli oggetti sono più di uno (come nel nostro esempio), gli oggetti contenenti le ''Picture'' vanno raggruppati con il nome di un medesimo Gruppo;
+
[1] Vedere anche:
* l'evento che scatena il ''prelevamento'' dell'immagine da trascinare è <FONT color=darkred>''_MouseDrag()''</font>;
+
* [[Guide_della_comunità#Drag_.26_Drop|Drag&Drop]]
* all'interno della routine di questo evento si porrà la riga di comando: ''Drag.Icon = Last.Picture'', affinché durante il trascinamento appaia in prossimità del puntatore del mouse l'icona dell'immagine che si sta trascinando. Inoltre, sarà posta quest'altra riga: ''Last.Drag(Last.Picture.Image)'' per avviare il processo di ''trascinamento'', indicando nell'argomento del metodo ''Drag'' che i dati oggetto della procedura di ''Drag'' sono afferenti ad un'immagine (e non un testo);
+
* [[Drag-Drop di un testo in una DrawingArea]]
* il rilascio dell'immagine all'interno dell'altro oggetto previsto (nel nostro esempio è una ''ScrollView'', che contiene una ''PictureBox'', che accoglierà e mostrerà effettivamente in vero l'immagine) è effettuato dall'evento <FONT color=darkred>''_Drop()''</font> dell'oggetto ricevente;
+
* [[Drag-Drop di un'immagine in una DrawingArea]]
* nella routine del ''Drop'' si assegnerà alla ''PictureBox'', presente all'interno dell'oggetto che scatena il predetto ''Drop'' (nel nostro esempio la ''ScrollView'', i dati dell'immagine oggetto del ''Drag''.
+
* [[Drag-Drop di un'immagine in una cella di una GridView]]
'''Public''' Sub Form_Open() 
+
* [[Drag-Drop di un testo da una cella di una GridView ad una cella di un'altra GridView]]
     
+
* [[Spostare oggetti con il mouse all'interno di un contenitore mediante Drag & Drop]]
    ScrollView1.Drop = True 
 
     
 
'''End'''
 
     
 
     
 
'''Public''' Sub pb_MouseDrag() 
 
     
 
    Drag.Icon = Last.Picture   
 
    Last.Drag(Last.Picture.Image)   
 
     
 
'''End''' 
 
     
 
'''Public''' Sub ScrollView1_Drop() 
 
     
 
  PictureBox4.Picture = Drag.Data.Picture 
 
     
 
'''End'''
 

Versione attuale delle 17:07, 31 gen 2024

Mostriamo di seguito un codice essenziali per effettuare il Drag&Drop [nota 1] di un'immagine, ad esempio, da una PictureBox a un'altra.
In particolare:

  • la PictureBox, nella quale verrà effettuato il rilascio dell'icona dell'immagine trascinata, deve avere la sua Proprietà ".Drop" posta a True;
  • la PictureBox, dalla quale viene prelevata e trascinata l'immagine (e quindi quella alla quale sarà applicato l'evento che scatena il prelevamento dell'immagine da trascinare), deve essere quella che ovviamente contiene l'immagine;
  • l'Evento che consente il prelevamento dell'immagine da trascinare è "_MouseDrag()";
  • all'interno della routine di questo Evento si porrà la riga di comando: Drag.Icon = Last.Picture, affinché durante il trascinamento appaia in prossimità del puntatore del mouse l'icona dell'immagine che si sta trascinando. Inoltre, sarà posta quest'altra riga: Last.Drag(Last.Picture.Image) per avviare il processo di trascinamento, indicando nell'argomento del Metodo ".Drag()" che i dati, oggetto della procedura di Drag, sono afferenti ad un'immagine (e non un testo);
  • nella routine dell'Evento "_Drop()" si assegnerà all'altra PictureBox, che scatena il predetto Drop, i dati dell'immagine oggetto del Drag.
Public Sub Form_Open()  

' Attiviamo la capacità della "PictureBox1" di ricevere con l'Evento "_Drop()" l'immagine trascinata:
 PictureBox1.Drop = True

 PictureBox2.Picture = Picture.Load("/percorso/del/file/immagine")

End


Public Sub PictureBox2_MouseDrag()  

' Preleviamo e trasciniamo l'immagine dalla "PictureBox2":
  Drag.Icon = Last.Picture    
  Last.Drag(Last.Picture.Image)
' ...o anche:
' Last.Drag(Drag.Icon.Image)

End


Public Sub PictureBox1_Drop()  

' Rilasciamo l'immagine nella "PictureBox1":
 PictureBox1.Picture = Drag.Data.Picture  

End


Note

[1] Vedere anche: