Codice essenziale per effettuare il Drag-Drop di un testo

Da Gambas-it.org - Wikipedia.

Mostriamo di seguito il codice essenziale per effettuare il Drag-Drop di un testo qualsiasi da un oggetto ad un altro posti sul medesimo Form. La procedura è sostanzialmente identica a quella descritta in questa WIKI per il Drag-Drop di un'immagine.

Nel nostro esempio abbiamo una TextArea, dalla quale verrà prelevato il testo, che sarà quindi trascinato e poi rilasciato in un TextLabel:

 Public Sub Form_Open()

   With TextArea1
     .Text = "testo qualsiasi"
     .Wrap = True
   End With
  
   With TextLabel1
' Attiviamo la capacità della "Textlabel" di ricevere con il "_Drop()" il testo trascinato:
     .Drop = True
     .Wrap = True
   End With

End


Public Sub TextArea1_MouseDrag()
 
' Preleviamo e trasciniamo il testo dalla "TextArea":
   TextArea1.Drag(TextArea1.Text, "text/html")

End


Public Sub TextLabel1_Drop()
 
' Rilasciamo il testo nell'oggetto "TextEdit":
   TextLabel1.Text &= Drag.Data & Chr(32)
 
End


Va fatto notare che, qualora il testo da trascinare contenga caratteri di controllo supportati attualmente da Gambas (come ad esempio \n "fine riga e a capo"), se viene effettuato il semplice trascinamento del testo, esso sarà disegnato nella TextLabel su un'unica riga senza rispettare l'effetto dei caratteri di controllo in esso presenti. Se il testo, invece, viene evidenziato, cliccando prima con il tasto sinistro del mouse all'inizio del testo medesimo tenendo contemporaneamente premuto il tasto dello Shift, e poi cliccando (sempre tenendo premuto il tasto dello Shift) alla fine del testo, allora il testo trascinato e rilasciato nella TextLabel sarà disegnato con il rispetto dell'effetto dei caratteri di controllo supportati da Gambas.