Drag-Drop di un testo in una DrawingArea

Da Gambas-it.org - Wikipedia.

Mostriamo un possibile codice per effettuare un semplice Drag-Drop di un testo da un qualsiasi oggetto in una DrawingArea. In particolare nell'esempio che segue un testo verrà prelevato e trascinato da una TextArea e rilasciato in una DrawingArea:

Private drX As Short
Private drY As Short
Private testo As String


Public Sub Form_Open()

  TextArea1.Text = "testo qualsiasi"
   
' Attiviamo la capacità della "DrawingArea" di sollevare l'evento "_Drop()":
  DrawingArea1.Drop = True

End


Public Sub TextArea1_MouseDrag()

' Preleviamo e trasciniamo il testo dalla "TextArea":
  TextArea1.Drag(TextArea1.Text, "text/html")

End


Public Sub DrawingArea1_Drop()

' All'atto del rilascio del testo vengono assegnate in apposite variabili
' il testo medesimo, nonché le coordinate X ed Y di rilascio all'interno della "DrawingArea".
' I valori contenuti in dette variabili, saranno utilizzati per disegnare il testo nella "DrawingArea":
  testo = Drag.Data
  drx = Drag.X
  drY = Drag.Y

End


Public Sub DrawingArea1_Draw()   ' Si disegna il testo nella "DrawingArea"

  DrawingArea1.Refresh

  With Paint
    .Begin(DrawingArea1)
    .Font.Size = 10
    .DrawRichText(testo, drX, drY)
    .End
  End With

End