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 Twitter
Referências: