Differenze tra le versioni di "Codice essenziale per effettuare il Drag-Drop di un testo"

Da Gambas-it.org - Wikipedia.
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:
  
 
Nel nostro esempio abbiamo una ''TextArea'', dalla quale verrà prelevato il testo, che sarà quindi trascinato e poi rilasciato in un ''TextLabel'':
 
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()
+
Public Sub Form_Open()
 
   
 
   
    With TextArea1
+
  With TextArea1
      .Text = "testo qualsiasi"
+
    .Text = "testo qualsiasi"
      .Wrap = True
+
    .Wrap = True
    End With
+
  End With
 
+
    With TextLabel1
+
  With TextLabel1
 
  <FONT color=gray>' ''Attiviamo la capacità della "Textlabel" di ricevere con il "_Drop()" il testo trascinato:''</font>
 
  <FONT color=gray>' ''Attiviamo la capacità della "Textlabel" di ricevere con il "_Drop()" il testo trascinato:''</font>
      .<FONT color=#B22222>Drop = True</font>
+
    .<FONT color=#B22222>Drop = True</font>
      .Wrap = True
+
    .Wrap = True
    End With
+
  End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub TextArea1_MouseDrag()
+
  Public Sub TextArea1_MouseDrag()
 
    
 
    
 
  <FONT color=gray>' ''Preleviamo e trasciniamo il testo dalla "TextArea":''</font>
 
  <FONT color=gray>' ''Preleviamo e trasciniamo il testo dalla "TextArea":''</font>
    TextArea1.Drag(TextArea1.Text, "text/html")
+
  TextArea1.Drag(TextArea1.Text, "text/html")
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub TextLabel1_Drop()
+
  Public Sub TextLabel1_Drop()
 
    
 
    
  <FONT color=gray>' ''Rilasciamo il testo nell'oggetto "TextEdit":''</font>
+
  <FONT color=gray>' ''Rilasciamo il testo nell'oggetto "TextLabel", aggiungendo anche uno spazio finale:''</font>
    TextLabel1.Text &= Drag.Data & Chr(32)
+
  TextLabel1.Text &= Drag.Data & Chr(32)
 
    
 
    
  '''End'''
+
  End
  
  
Riga 40: Riga 40:
 
=Note=
 
=Note=
 
[1] Vedere anche:
 
[1] Vedere anche:
<BR> - [[Guide_della_comunità#Drag_-_Drop|Drag&Drop]]
+
<BR> - [[Drag-Drop di un testo in una DrawingArea]]
<BR> - [[Drag-Drop_di_un_testo_in_una_DrawingArea|Drag-Drop di un testo in una DrawingArea]]
+
<BR> - [[Drag-Drop di un'immagine in una DrawingArea]]
<BR> - [[Drag-Drop_di_un'immagine_in_una_DrawingArea|Drag-Drop di un'immagine in una DrawingArea]]
+
<BR> - [[Drag-Drop di un testo da una cella di una GridView ad una cella di un'altra GridView]]
<BR> - [[Drag-Drop_di_un'immagine_in_una_cella_di_una_GridView|Drag-Drop di un'immagine in una cella di una GridView]]
+
<BR> - [[Mostrare il contenuto di un file di testo con il solo drop del file in un oggetto di testo]]
<BR> - [[Drag-Drop_di_un_testo_da_una_cella_di_una_GridView_ad_una_cella_di_un'altra_GridView|Drag-Drop di un testo da una cella di una GridView ad una cella di un'altra GridView]]
 
<BR> - [[Spostare_oggetti_con_il_mouse_all'interno_di_un_contenitore_mediante_Drag_%26_Drop|Spostare oggetti con il mouse all'interno di un contenitore mediante Drag&Drop]]
 

Versione attuale delle 10:01, 19 nov 2023

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. La procedura è sostanzialmente identica a quella descritta in questa WIKI per il Drag-Drop di un'immagine. [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
- Drag-Drop di un testo da una cella di una GridView ad una cella di un'altra GridView
- Mostrare il contenuto di un file di testo con il solo drop del file in un oggetto di testo