Mostrare il contenuto di un file di testo con il solo drop del file in un oggetto di testo

Da Gambas-it.org - Wikipedia.

Per far mostrare da un Controllo per il testo il contenuto di un file di testo, si dovrà solo e semplicemente trascinare tale file con il mouse (tenendo premuto il suo tasto sinistro) all'interno del Controllo di testo.
Il file di testo può essere trascinato da una Cartella, da un Controllo grafico del programma Gambas che mostri il file di testo, da una finestra di un qualsiasi programma esterno o anche dalla Scrivania (Desktop ).
Ripetiamo che con il mouse va trascinata l'icona che rappresenta il file di testo.

Poiché il trascinamento è un rilascio di file, non si deve usare la Proprietà statica ".Data" della Classe Drag: "Drag.Data" per un'operazione di rilascio di un file è un elenco terminato con cr-lf e avrà il seguente aspetto:

file:///home/[Home.User]/Scrivania/nome%20del%20file\r-28:-27:48:48\r\n

Si dovrà invece usare il Metodo ".Paste()" della Classe Drag, il quale restituisce il percorso (NON il contenuto) del file trascinato.
Se nell'argomento del Metodo viene posta l'opzione:

Drag.Paste("text/uri-list")

allora viene restituito un array di tipo stringa. Solitamente il primo elemento (numero d'indice 0) contiene il puro percorso e il nome del file trscinato.

/home/[Home.User]/Scrivania/nome del file

precisando che alla fine della strina è presente comunque il carattere di nuova riga a capo (&h0A ossia "\n").

Se invece nell'argomento viene posta l'opzione:

Drag.Paste("text/plain")

viene restituito il testo grezzo e completo del percorso del file:

file:///home/[Home.User]/Scrivania/nome%20del%20file

Esempi pratici

L'esempio pratico seguente prevede la presenza sul Form dell'applicativo Gambas di una TextArea, nella quale si trascinerà e si rilascerà quindi il file di testo:

Private TextArea1 As TextArea


Public Sub Form_Open()
 
 With Me
   .Center
   .W = Screen.AvailableWidth * 0.75
   .H = Screen.AvailableHeight
 End With
 With TextArea1 = New TextArea(Me) As "TextArea1"
   .X = 0
   .Y = 0
   .W = Me.W * 0.5
   .H = Me.H
' Impostiamo la Proprietà ".Drop" a "vera" per consentire l'attivazione dell'evento del "Drop":
   .Drop = True
   .Wrap = True
 End With

End


Public Sub TextArea1_Drop()  ' Rilasciamo il file di testo nella "TextArea"
 
 Dim percorso As String
 
 percorso = Drag.Paste("text/uri-list")[0]

 TextArea1.Text = File.Load(Trim(percorso))

End

Trascinando il file di testo prelevandolo da un FileChooser

Il precedente codice va bene anche se vogliamo trascinare un file prescelto dalla lista mostrata da un Controllo FileChoser.
Ad ogni modo si può abbreviare la seconda routine come segue:

Public Sub TextArea1_Drop()

 TextArea1.Text = File.Load(FileChooser1.SelectedPath)

End