Uso della classe Clipboard

Da Gambas-it.org - Wikipedia.

La Classe Clipboard consente di gestire gli appunti memorizzati (ossia la clipboard) di sistema.


L'uso della Classe Clipboard può avvenire per copiare negli appunti di sistema mediante la sua funzione .Copy() un testo oppure un'immagine. Successivamente attraverso la funzione .Paste() potranno essere restituiti i dati precedentemente copiati. Nel caso sia stata copiata un'immagine, verrà restituita un'immagine di tipo Image.


Copia di dati all'interno dello stesso applicativo Gambas

Si potranno copiare dati presenti in un oggetto dell'applicativo Gambas per immetterli in un altro oggetto dello stesso applicativo.

Poniamo come esempio il caso in cui sul Form si abbiano due PictureBox, in una delle quali è presente un'immagine. Si intende semplicemente far mostrare all'applicativo nella seconda PictureBox l'immagine presente nella prima PictureBox, attraverso la copia negli appunti del sistema dell'immagine da assegnare poi alla seconda PictureBox:

Public Sub Button1_Click()
  
' Facciamo una copia dell'immagine negli appunti (clipboard) di sistema:
   Clipboard.Copy(PictureBox1.Picture.Image)
 
End


Public Sub PictureBox2_MouseUp()

 Dim i As Image
   
' Assegnamo ad una variabile di tipo "Image" la copia dell'immagine posta negli appunti di sistema:
   i = Clipboard.Paste()
   
' Assegnamo l'immagine alla seconda "PictureBox" presente nel Form:
   PictureBox2.Picture = i.Picture

End


Volendo invece fare l'esempio con un testo, poniamo il caso di avere un ValueBox ed una Label. Intendiamo copiare il contenuto del ValueBox nella Label attraverso l'uso della Classe Clipboard:

Public Sub ValueBox1_MouseUp()

  Clipboard.Copy(CStr(ValueBox1.Value))

End


Public Sub Label1_MouseUp()

  Label1.Text = Clipboard.Paste()

End


Copia di dati dall'esterno dell'applicativo Gambas all'interno dell'applicativo medesimo

Si potranno, inoltre, copiare dati stringa presenti all'esterno dell'applicativo Gambas per immetterli in un oggetto dello stesso applicativo. Pertanto, in questo caso avremo la copia di un testo da un programma Gambas in un altro programma Gambas.

Copia da un programma Gambas in un altro programma Gambas

Poniamo come esempio il caso in cui si intende copiare un testo, presente in un altro programma Gambas, all'interno dell'applicativo Gambas principale. In tal caso basterà evidenziare la riga di testo prescelta, premere i tasti ctrl+C oppure usare l'opzione Copy presente nella finestrina cliccando il tasto destro del mouse; quindi usare la semplice funzione .Paste() della Classe Clipboard:

Public Sub Label1_MouseUp()

  Label1.Text = Clipboard.Paste()

End

Copia da un programma non-Gambas in un programma Gambas

Si potrà copiare un testo anche da un programma non-Gambas esterno in un applicativo Gambas. In tal caso, però, si è notato che si otterrà come risultato finale non solo il testo copiato, ma anche altri dati estranei, come ad esempio dati relativi al codice di formattazione del testo medesimo ed imposti dal programma esterno non-Gambas (esempio: Gedit) che sta mostrando il testo. Copiando da un sorgente HTML, verrà riportato nell'applicativo gambas anche il codice HTML della riga relativa al testo copiato.
Eccezione sembra fare il risultato della copia di un testo da LibreOffice.