Clipboard

From Xojo Documentation

Class (inherits from Object)

Used to read and write information to and from the Clipboard.

Properties
Picture Text
Methods
Close RawData TextAvailable
PictureAvailable RawDataAvailable

Notes

In order to read text from or write text to the Clipboard, you must create an object of type Clipboard and then access the Text or Picture properties of the Clipboard object you create. You can place a picture on the Clipboard by setting the Picture property. You can use the SetText and AddRawData methods to write text or binary data to the Clipboard. The Clipboard class is not available to Console applications.

For best results, create a new Clipboard object each time you need to use the clipboard.

The Clipboard supports UTIs (Uniform Type Identifiers).

Sample Code

This code gets the text on the Clipboard and copies it to a variable:

Var c As New Clipboard
Var s As String
s = c.Text
c.Close

This code puts text on the Clipboard:

Var c As New Clipboard
c.Text = "The Quick Brown Fox outran the Lazy Dog"
c.Close

This code checks to see if the Clipboard is text data and if so, copies the contents of the clipboard to a TextField:

Var c As New Clipboard
If c.TextAvailable Then
TextField1.Text = c.Text
End If
c.Close

This code copies an image to the Clipboard:

Var c As New Clipboard
If ImageWell1.Image <> Nil Then
c.Picture = ImageWell1.Image
c.Close
Else
MessageBox("No picture is available!")
End If

When you want to put more than one item on the clipboard, you can't use the properties of this class to append new text or graphics to existing material. That is, the following code won't put both text strings on the Clipboard:

Var text1 As String = "This is the first item being put on the clipboard!"
Var text2 As String = "This is the second item being put on the clipboard"
Var c As New Clipboard
c.Text = text1
c.Text = text2 // Overwrites first text
c.Close

You need to do the appending in your code and just use one call to the Text property:

Var text1 As String = "This is the first item being put on the clipboard!"
Var text2 As String = "This is the second item being put on the clipboard"
Var c As New Clipboard
c.Text = text1 + text2
c.Close