Ottenere il percorso di un file trasportato e rilasciato con Drag&Drop

Da Gambas-it.org - Wikipedia.

Per ottenere il percorso, comprensivo del nome di un file, trascinato con la risorsa del Drag&Drop all'interno di un Controllo di testo, utilizza il Metodo ".Paste()" della Classe Drag.
Sarà opportuno lasciare vuoto il parametro previsto dal Metodo ".Paste()", giacché, se usassimo il formato "text/uri-list", eventuali file aventi nel nome caratteri particolari - come ad esempio il simbolo "+" o il simbolo "§" - questi sarebbero sostituiti nel risultato da uno spazio bianco.
Lasciando invece vuoto quel parametro, i simboli saranno salvaguardati, anche se, però, qualora il nome del file dovesse contenere uno spazio bianco, questo sarebbe riportato con il codice "%20" (sappiamo che il valore esadecimale &H20 corrisponde appunto nella tabella ASCII al carattere dello Spazio Bianco). Per ovviare a ciò useremo la funzione "Replace()".
Va sottolineato che la stringa del percorso, dopo il nome del file, prevede il carattere del "Nuova linea a capo" (&H10, gb.Newline) e del "Ritorno a capo" (&H0D, gb.Cr), seguito da alcuni valori numerici in ASCII. Per eliminare il valore del &H0D, il codice prevederà l'uso della funzione Scan().

Mostriamo un semplice esempio, nel quale sarà possibile vedere in una ListBox il percorso e il nome di un file che sarà stato trascinato con la modlità del Drag&Drop.

Public Sub Form_Open()

 ListBox1.Drop = True

End


Public Sub Listbox1_Drop()

 ListBox1.Add(Replace(Scan(Drag.Paste(), "*//*\r*")[1], "%20", " "))

' oppure: ListBox1.Add(Scan(FromUrl(Drag.Paste()), "*//*\r*")[1])

End