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. [nota 1]

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 "TextLabel", aggiungendo anche uno spazio finale:
 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.


Note

[1] Vedere anche:
- Drag-Drop di un testo in una DrawingArea
- Drag-Drop di un'immagine in una DrawingArea
- Spostare il testo da una cella di una GridView nella cella di un'altra GridView con il Drag&Drop
- Mostrare il contenuto di un file di testo con il solo Drop del file in un oggetto di testo