Visual Basic 6 - Usando a área de transferência (ClipBoard)
A área de transferência do Windows permite que você troque informações ( textos , gráficos, etc...) entre aplicativos Windows ( vide operação : recortar/copiar/colar e arrastar e soltar).
O VB possui métodos que permitem a você trabalhar com a área de transferência do Windows em sua aplicação VB.
Os métodos mais usados para trabalhar com o ClipBoard (área de transferência) são : SetText e GetText. Estes dois métodos transferem dados no formato string para o clipboard.

| - SetText
        : copia o texto para o ClipBoard (substitui o texto
        existente). A sintaxe é : Clipboard.SetText data[, format] 
 - GetText : Retorna o texto armazenado no ClipBoard.(O texto ainda continua no ClibBoard). A sintaxe é : destino = Clipboard.GetText() | ||||||||||||
| As definições para a
        constante Format são : ( valem
        para SetText e GetText) 
 | ||||||||||||
Obs: Para limpar a área de transferência usamos o método Clear : Ex - ClipBoard.Clear.
Outro método que pode ser usado em conjunto com os métodos acima descritos é GetFormat. Este método retorna um inteiro que indica se um item presente no ClipBoard coincide com um formato especificado. A sintaxe usada é :
object.GetFormat (format)
Onde temos:
| Parte | Descrição | 
| object | O objeto a que o formato se refere. | 
| format | Um valor ou constante que especifica o formato do objeto no ClipBoard. (Veja a seguir so valores possiveis). | 
Os valores possiveis para format são :
| Constante | Valor | Descrição | 
| vbCFLink | &HBF00 | DDE (informação de conexão) | 
| vbCFText | 1 | Texto | 
| vbCFBitmap | 2 | Bitmap (.bmp files) | 
| vbCFMetafile | 3 | Metafile (.wmf files) | 
| vbCFDIB | 8 | Device-independent bitmap (DIB) | 
| vbCFPalette | 9 | Color palette | 
O método GetFormat retorna True se o item no ClipBoard coincidir com um dos valores definidos em format, caso contrário ele retorna False.
Combinando os dois métodos com as propriedades para selecionar textos podemos facilmente Copiar , Recortar e Colar. Vejamos :
1 - Inicie um novo projeto no VB e no formulário padrão insira um botão de comando e uma caixa de texto , conforme o layout abaixo:
2- Insira o código abaixo no evento Click do botão de comando - command1 :
| Private Sub Command1_Click()
Dim I As Integer
Dim Msg As String, temp As String
On Error Resume Next 
Msg = "Digite qualquer texto ...."
Text1.Text = InputBox(Msg)   ' o texto informado
Msg = "Escolha OK para copiar o conteúdo da Caixa de Texto " & vbCrLf & vbCrLf
Msg = Msg & "para a Área de Transferência."
MsgBox Msg ' mostra mensagem
Clipboard.Clear ' limpa o ClibBoard
Clipboard.SetText Text1.Text ' Poe o texto no ClipBoard
If Clipboard.GetFormat(vbCFText) Then
   Text1.Text = "" ' limpa a caixa de texto
   Msg = "O texto agora esta no Clipboard. Clique em OK " & vbCrLf & vbCrLf
   Msg = Msg & "para copiar o texto do ClipBoard " & vbCrLf
   Msg = Msg & "para a Caixa de Texto " & vbCrLf & vbCrLf
   Msg = Msg & "Obs: O texto será invertido !"
   MsgBox Msg ' exibe a mensagem
   temp = Clipboard.GetText(vbCFText) ' pega o texto do clipboard
 
   For I = Len(temp) To 1 Step -1 ' inverte o texto
     Text1.Text = Text1.Text & Mid(temp, I, 1)
   Next I
Else
  Msg = "Não há nenhum texto na área de transferência."
  MsgBox Msg 'exibe a mensagem de erro
End If
End Sub | 
Ao executar o projeto teremos a sequencia de telas conforme abaixo:
|  |  | 
| Tela inicial do exemplo | O usuário informa o texto | 
|  |  | 
| O texto é copiado para a caixa de texto | O texto é copiado para a área de transferência | 
|  | |
Até agora trabalhamos com texto no ClipBoard . E se quisermos trabalhar com imagens gráficas ?
O método GetData retorna um gráfico do objeto ClipBoard. A sintaxe é :
object.GetData (format)
Onde temos:
| Parte | Descrição | 
| object | O objeto a que o formato se refere. | 
| format | Uma constante ou valor que define o formato gráfico do item no Clipboard . Se o o valor de format for igual a 0 ou omitido , GetData usa o formato apropriado. | 
Os valores para format são:
| Constante | Valor | Descrição | 
| vbCFBitmap | 2 | Bitmap (.bmp files) | 
| vbCFMetafile | 3 | Metafile (.wmf files) | 
| vbCFDIB | 8 | Device-independent bitmap (DIB) | 
| vbCFPalette | 9 | Color palette | 
Se nenhum gráfico no ClipBoard coincidir com um dos formatos especificados , o retorno será nada.
Para por um gráfico no ClipBoard usamos o método SetData. A sintaxe é :
object.SetData data, format
onde data é o objeto gráfico e format um valor que indica o formato da imagem gráfica. Os valores possíveis são:
| Constante | Valor | Descrição | 
| vbCFBitmap | 2 | Bitmap (.bmp files) | 
| vbCFMetafile | 3 | Metafile (.wmf files) | 
| vbCFDIB | 8 | Device-independent bitmap (DIB) | 
| vbCFPalette | 9 | Color palette | 
Vamos mostrar um exemplo que trabalhe com gráficos no ClipBoard:
1 - Inicie um novo projeto no VB e no formulário padrão insira um botão de comando , conforme o layout abaixo:
2- Insira o código abaixo no evento Click do botão de comando - command1 :
| Private Sub Command2_Click()
Const CF_BITMAP = 2  ' Define o formato bitmap
Dim Msg As String    ' Declara a variavel
On Error Resume Next ' trata os erros continuando a execução
Msg = "Clique em Ok para carregar um bitmap para o Clipboard."
MsgBox Msg           ' Exibe a mensagem
Clipboard.Clear      ' Limpa o Clipboard.
Clipboard.SetData LoadPicture("c:\teste\teste.bmp") ' Obtem o bitmap.
If Err Then
   Msg = "Não achei o arquivo .bmp ."
   MsgBox Msg             ' exibe mensagem de erro
   Exit Sub
End If
Msg = "Um bitmap esta agora no Clipboard. Escolha OK para copiar "
Msg = Msg & "o bitmap do Clipboard para o formulário"
MsgBox Msg           ' exibe mensagem de erro
Picture = Clipboard.GetData() ' Copia a partir do Clipboard.
Msg = "Clique em OK para limpar o formulário."
MsgBox Msg
Picture = LoadPicture() ' limpa o formulario
End Sub
 | 
Ao executar o projeto a sequência de telas obtidas é a seguinte:
|  | 
|  | 
|  | 
Só isto... Até mais... 
| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic 
(sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? | 
  Gostou ?   Compartilhe no Facebook
Compartilhe no Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter 
Referências: