Codice essenziale per effettuare il Drag-Drop di un'immagine

Da Gambas-it.org - Wikipedia.
Versione del 13 ott 2013 alle 16:26 di Vuott (Discussione | contributi) (Creata pagina con '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 med...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Mostriamo di seguito il codice essenziale per effettuare il Drag-Drop di un'immagine da un oggetto ad un altro posti sul medesimo Form.

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.
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 True;
  • 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 contiene 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;
  • l'evento che scatena 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 è un'immagine (e non un testo);
  • 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 _Drop() dell'oggetto ricevente;
  • 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.
Public Sub Form_Open()  
     
   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