Differenze tra le versioni di "Mostrare il contenuto di un file di testo con il solo drop del file in un oggetto di testo"

Da Gambas-it.org - Wikipedia.
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Per far mostrare da un Controllo per il testo il contenuto di un file di testo, si dovrà solo e semplicemente <SPAN Style="text-decoration:underline">trascinare tale '''file'''</span> con il mouse (tenendo premuto il suo tasto sinistro) all'interno del Controllo di testo.
 
Per far mostrare da un Controllo per il testo il contenuto di un file di testo, si dovrà solo e semplicemente <SPAN Style="text-decoration:underline">trascinare tale '''file'''</span> con il mouse (tenendo premuto il suo tasto sinistro) all'interno del Controllo di testo.
<BR>Il file di testo può essere trascinato da una Cartella o anche da una finestra di un qualsiasi programma esterno.
+
<BR>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'' ).
 
<BR>Ripetiamo che con il mouse va trascinata l'<SPAN Style="text-decoration:underline">icona</span> che rappresenta il <SPAN Style="text-decoration:underline">file</span> di testo.
 
<BR>Ripetiamo che con il mouse va trascinata l'<SPAN Style="text-decoration:underline">icona</span> che rappresenta il <SPAN Style="text-decoration:underline">file</span> 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.
 +
<BR>Se nell'argomento del Metodo viene posta l'opzione:
 +
Drag.Paste("<FONT Color=red>text/uri-list</font>")
 +
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("<FONT Color=green>text/plain</font>")
 +
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:
 
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
 
  Private TextArea1 As TextArea
Riga 19: Riga 34:
 
     .W = Me.W * 0.5
 
     .W = Me.W * 0.5
 
     .H = Me.H
 
     .H = Me.H
  <FONT color=gray>' ''Impostiamo la proprietà ".Drop" a "vera" per consentire l'attivazione dell'evento del "Drop"''</font>
+
  <FONT color=darkgreen>' ''Impostiamo la Proprietà ".Drop" a "vera" per consentire l'attivazione dell'evento del "Drop":''</font>
 
     .Drop = True
 
     .Drop = True
 
     .Wrap = True
 
     .Wrap = True
Riga 37: Riga 52:
 
  End
 
  End
  
 
+
====Trascinando il file di testo prelevandolo da un ''FileChooser''====
===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''.
 
Il precedente codice va bene anche se vogliamo trascinare un file prescelto dalla lista mostrata da un Controllo ''FileChoser''.
<BR>Ad ogni modo si può abbreviare la seconda routine come segue
+
<BR>Ad ogni modo si può abbreviare la seconda routine come segue:
 
  Public Sub TextArea1_Drop()
 
  Public Sub TextArea1_Drop()
 
   
 
   

Versione attuale delle 09:44, 17 nov 2023

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