Delphi .NET – ClipBoard

Trabalhando com images e texto do ClipBoard

Nesse artigo demonstrarei a partir do nosso programa de exemplo como enviar para o clipboard(Copiar) e como recuperar o que está no clipboard(Colar) textos e imagens.

 

Definição do que é ClipBoard - Uma área de memória que funciona como um depósito para as informações (imagens ou textos), que tenham sido copiadas ou extraídas de um documento, por último. Essas informações podem ser recuperadas pelo mesmo ou até por outro programa quando se emite o comando "Paste" (colar), garantindo a transferência ao usuário. Característico das interfaces gráficas, que operam por ícones, tais como o Windows para o PC.

Criando a Interface do programa exemplo

Abra o Borland Delphi .Net (Versões 8/2005/2006), crie uma nova aplicação do tipo Windows Forms Application – Delphi for .Net, como iremos trabalhar com textos e imagens no clipboard coloque um componente RichTextBox, altere a propriedade name para  rtbTexto, carregue uma imagem qualquer no RichTextBox para usarmos como exemplo, use a propriedade Image para isso, coloque mais dois componentes Buttons logo abaixo, altere a propriedade name do primeiro para btnCopiarTexto e do segundo para btnColarTexto, e as suas respectivas propriedades Text para Copiar Texto e Colar Texto, coloque do lado do componente RichTexBox um componente PictureBox, altere a propriedade name para pbImagem, coloque mais dos componentes Buttons logo abaixo, altere a propriedade name do primeiro para btnCopiarImagem e do segundo para btnColarImagem, e as suas respectivas propriedades Text para Copiar Imagem e Colar Texto, pronto sua interface deve ficar parecida com a apresentada na Figura 1.

img 

Figura 1. Interface do nosso programa de exemplo.

Código do programa exemplo

No evento Click do button btnCopiarTexto coloque o código da Listagem 1 esse será o responsável por copiar o texto do rtbTexto para o ClipBoard, e no evento Click do button btnColarTexto coloque o código da Listagem 2 esse será o responsável por colar o texto do Clipboard no rtbTexto.

 

Listagem 1. Código para copiar o texto para o ClipBoard.

Clipboard.SetDataObject(rtbTexto.Text, True);

 

Listagem 2. Código para colar o texto no rtbTexto do ClipBoard.

// Verifica se existe algum texto na Área de transferência

if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)) then

  // Coloca o texto dentro do RitchTextBox

  rtbTexto.Text := Clipboard.GetDataObject().GetData(

    DataFormats.Text).ToString()

else

  rtbTexto.Text  := 'O Clipboard não contêm texto.';

 

No evento Click do button btnCopiarImagem coloque o código da Listagem 3 esse será o responsável por copiar a imagem do pbImagem para o ClipBoard, e no evento Click do button btnColarImagem coloque o código da Listagem 4 esse será o responsável por colar a imagem do Clipboard no pbImagem.

 

Listagem 3. Código para copiar a imagem para o ClipBoard.

Clipboard.SetDataObject(pbImagem.Image, True);

 

Listagem 4. Código para colar a imagem no pbImagem do ClipBoard.

//Verifica se existe alguma imagem na Área de transferência

if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Bitmap)) then

  // Coloca a imagem no picturebox

pbImagem.Image := Bitmap(Clipboard.GetDataObject().GetData(

  DataFormats.Bitmap));

{ Dica: Para uma melhor visualização, configurar a propriedade

  SizeMode para StrechImage }

 

Vamos agora testar o nosso programa, digite uma mensagem no rtbTexto e clique em Copiar Texto, abra o notepad e CTRL+V, veja a Figura 2, depois digite uma mensagem no notepad e copie ela CTRL+C, volte ao nosso programa e clique em Colar Texto, veja o resultado na Figura 3.

img 

Figura 2. Exemplo de copiar texto.

img 

Figura 3. Exemplo de colar texto.

Agora vamos testar a parte de imagens, clique em Copiar Imagem, abra o MsPaint e CTRL+V, veja a Figura 4, faça uns rabiscos na imagem do MsPaint e copie ela CTRL+C, volte ao nosso programa e clique em Colar Imagem, veja o resultado na Figura 5.

img 

Figura 4. Exemplo de copiar imagem.

img 

Figura 5. Exemplo de colar imagem.

Conclusões

Nesse artigo vemos como trabalhar com clipboard com texto e imagens agora basta você aprimorar as idéias e implementar em seu sistema.