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.
Riga 7: Riga 7:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   With Me
 
   With Me
Riga 34: Riga 34:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub TextArea1_Drop()  <FONT color=gray>' ''Rilasciamo il file di testo nella "TextArea"''</font>
+
   
 +
Public Sub TextArea1_Drop()  <FONT color=gray>' ''Rilasciamo il file di testo nella "TextArea"''</font>
 
    
 
    
 
   Dim percorso As String
 
   Dim percorso As String
 
    
 
    
   percorso = Drag.Paste("text/uri-list")
+
   percorso = Drag.Paste("text/uri-list")[0]
 
   
 
   
<FONT color=gray>' ''Poiché il metodo "Drag.Paste()" ritorna la rappresentazione URI del pecorso del file di testo trascinato nell'oggetto di testo,''
+
  TextArea1.Text = File.Load(Trim(percorso))
' ''qualora il nome del file di testo contenga uno o più spazi, essi sarebbero riportati con i caratteri %20 (da notare che 20 è il valore ASCII in esadecimale appunto dello spazio)''.
 
' ''Ciò determinerebbe un errore nel successivo metodo "File.Load()". Applichiamo, pertanto, alla stringa ritornata dal metodo "Drag.Paste()" la funzione "FromUrl()":''</font>
 
  percorso = FromUrl(percorso)
 
 
 
  percorso = Scan(percorso, "file://*")[0]
 
 
   
 
   
  TextArea1.Text = File.Load(Trim(percorso))
+
End
 
   
 
   
'''End'''
 
 
   
 
   
  '''Public''' Sub TextEdit1_Drop()  <FONT color=gray>' ''Rilasciamo il file di testo nell'oggetto "TextEdit"''</font>
+
  Public Sub TextEdit1_Drop()  <FONT color=gray>' ''Rilasciamo il file di testo nell'oggetto "TextEdit"''</font>
 
    
 
    
 
   Dim percorso As String
 
   Dim percorso As String
 
    
 
    
   percorso = Drag.Paste("text/uri-list")
+
   percorso = Drag.Paste("text/uri-list")[0]
 
+
<FONT color=gray>' ''Poiché il metodo "Drag.Paste()" ritorna la rappresentazione URI del pecorso del file di testo trascinato nell'oggetto di testo,''
 
' ''qualora il nome del file di testo contenga uno o più spazi, essi sarebbero riportati con i caratteri %20 (da notare che 20 è il valore ASCII in esadecimale appunto dello spazio)''.
 
' ''Ciò determinerebbe un errore nel successivo metodo "File.Load()". Applichiamo, pertanto, alla stringa ritornata dal metodo "Drag.Paste()" la funzione "FromUrl()":''</font>
 
  percorso = FromUrl(percorso)
 
 
 
  percorso = Scan(percorso, "file://*")[0]
 
 
 
 
   TextEdit1.Text = File.Load(Trim(percorso))
 
   TextEdit1.Text = File.Load(Trim(percorso))
 
+
  '''End'''
+
  End

Versione delle 09:30, 4 ago 2023

Il caso è quello in cui si intende far mostrare da un oggetto di testo il contenuto di un file di testo solo e semplicemente trascinando tale file con il mouse (tenendo premuto il suo tasto sinistro) all'interno dell'oggetto di testo predetto. Il file di testo può essere trascinato anche da una finestra esterna all'applicativo Gambas.
Precisiamo che con il mouse va trascinato il file di testo. Non va, dunque, trascinato il testo, anche se evidenziato, del file !

L'esempio pratico seguente prevede la presenza sul Form dell'applicativo Gambas di una TextArea e di una TextEdit. In tal modo si potrà fare l'esperimento trascinando e rilasciando, a piacimento, il file di testo sia all'interno della TextArea sia all'interno della TextEdit:

Private TextArea1 As TextArea
Private TextEdit1 As TextEdit


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
 With TextEdit1 = New TextEdit(Me) As "TextEdit1"
   .X = TextArea1.W
   .Y = 0
   .W = Me.W * 0.5
   .H = Me.H
   .Background = Color.SoftYellow
' 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


Public Sub TextEdit1_Drop()   ' Rilasciamo il file di testo nell'oggetto "TextEdit"
 
 Dim percorso As String
  
 percorso = Drag.Paste("text/uri-list")[0]

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

End