Differenze tra le versioni di "Mantenere durante il Drag&Drop il cursore del mouse nel punto dell'immagine ove si è cliccato"

Da Gambas-it.org - Wikipedia.
 
Riga 3: Riga 3:
  
 
Mostriamo un semplice esempio pratico:
 
Mostriamo un semplice esempio pratico:
  '''Public''' Sub Form_Open()   
+
  Public Sub Form_Open()   
 
   
 
   
 
  <FONT Color=gray>' ''Attiviamo la capacità della "PictureBox1" di ricevere con l'Evento "_Drop()" l'immagine trascinata:''</font>
 
  <FONT Color=gray>' ''Attiviamo la capacità della "PictureBox1" di ricevere con l'Evento "_Drop()" l'immagine trascinata:''</font>
Riga 10: Riga 10:
 
   PictureBox2.Picture = Picture.Load("<FONT Color=gray>''/percorso/del/file/immagine''</font>")
 
   PictureBox2.Picture = Picture.Load("<FONT Color=gray>''/percorso/del/file/immagine''</font>")
 
   
 
   
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub PictureBox2_MouseDrag()   
+
   
 +
Public Sub PictureBox2_MouseDrag()   
 
   
 
   
 
  <FONT Color=gray>' ''Preleviamo e trasciniamo l'immagine dalla "PictureBox2":''</font>
 
  <FONT Color=gray>' ''Preleviamo e trasciniamo l'immagine dalla "PictureBox2":''</font>
Riga 20: Riga 21:
 
  ' Last.Drag(Drag.Icon.Image)''</font>
 
  ' Last.Drag(Drag.Icon.Image)''</font>
 
   
 
   
  '''End'''
+
  End  
 
   
 
   
  '''Public''' Sub PictureBox2<FONT Color=orange>_MouseMove()</font>
+
   
 +
Public Sub PictureBox2<FONT Color=orange>_MouseMove()</font>
 
   
 
   
 
  <FONT Color=gray>' ''Cancella l'immagine rilasciata precedentemente nella "PictureBox1":''</font>
 
  <FONT Color=gray>' ''Cancella l'immagine rilasciata precedentemente nella "PictureBox1":''</font>
Riga 30: Riga 32:
 
   Drag.IconY = Mouse.Y</font>
 
   Drag.IconY = Mouse.Y</font>
 
   
 
   
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub PictureBox1_Drop()   
+
  Public Sub PictureBox1_Drop()   
 
   
 
   
 
  <FONT Color=gray>' ''Rilasciamo l'immagine nella "PictureBox1":''</font>
 
  <FONT Color=gray>' ''Rilasciamo l'immagine nella "PictureBox1":''</font>
Riga 39: Riga 42:
 
  ' PictureBox1.Image = Drag.Icon.Image''</font>
 
  ' PictureBox1.Image = Drag.Icon.Image''</font>
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 13:17, 22 giu 2024

Di norma durante il trascinamento di un'immagine con le risorse, apprestate da Gambas per il Drag&Drop, il cursore del mouse si pone poco al di fuori dell'angolo destro in alto dell'icona trascinata.
Se si intende mantenere invece il cursore del mouse nel punto, ove si è cliccato, prima dell'inizio del trascinamento, allora si dovranno assegnare alle Proprietà ".X" e ".Y" della Classe Drag i valori ritornati dalle Proprietà ".X" e ".Y" della Classe Mouse all'interno della routine dell'Evento "_MouseMove()" della PictureBox, dalla quale si trascina l'immagine.

Mostriamo un semplice esempio pratico:

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 PictureBox2_MouseMove()

' Cancella l'immagine rilasciata precedentemente nella "PictureBox1":
 PictureBox1.Picture = Null

 Drag.IconX = Mouse.X
 Drag.IconY = Mouse.Y

End


Public Sub PictureBox1_Drop()  

' Rilasciamo l'immagine nella "PictureBox1":
PictureBox1.Picture = Drag.Data.Picture
' ...o anche:
' PictureBox1.Image = Drag.Icon.Image

End