Uma classe simples de utilizar no NetExpress é a classe Clipboard. Com ela, você pode ler ou gravar informações na área de transferência do Windows. A classe só permite a gravação e a leitura de sequências de caracteres.
Defina as classes que serão utilizadas:
class-control.
Clipboard is class "clipbrd"
CharacterArray is class "chararry"
.
Defina as variáveis da working-storage section:
77 umaString object reference value null.
77 wsTexto pic x(255) value spaces.
A classe Clipboard trabalha com objetos (instâncias) da classe CharacterArray. Portanto, para gravar dados na área de transferência precisamos criar uma instância dessa classe:
move z"Este é um texto de exemplo." to wsTexto
invoke CharacterArray "withValue" using wsTexto
returning umaString
invoke Clipboard "write" using umaString
invoke umaString "finalize" returning umaString
Nesse momento, se o desenvolvedor estiver utilizando um editor de textos ou qualquer outro programa que permita colagem de dados da área de transferência, vai notar que a sequência de caracteres "Este é um exemplo de texto" será mostrada.
Para ler dados da área de transferência, utilize os seguintes comandos:
invoke Clipboard "read" returning umaString
invoke umaString "getValue" returning wsTexto
invoke umaString "finalize" returning umaString
Note que o método "getValue" espera que a variável de retorno tenha tamanho suficiente para armazenar a informação. Caso contrário, ocorrerá problemas de memória.
Em um próximo "post", vou mostrar a utilização de API´s para trabalhar com outros formatos de dados na área de transferência.
2 comentários:
Olá Alex,
Tentei utilizar o mecanismo de copiar colar no NetExpress 3.1 mas estou recebendo a mensagem seguinte
==================================
load error : file 'clipbrd'
error code: 173, pc=0, call=1, seg=0
==================================
Fiz alguns stops no programa e vi que o erro eh exatamente na linha seguinte:
==================================
invoke Clipboard "write" using umaString.
==================================
Como devo proceder?
Agradeco sua atencao,
Fernando
fernandolordao@gmail.com
Olá Alex,
Consegui resolver o problema.
No próprio help do NetExpress, a descrição do erro 173, descreve que antes de invocar classes da API Gráfica, devemos utilizar o comando CALL "APIGUI" para carregar a DLL que contém as classes.
Portanto, a solução foi apenas incluir CALL "APIGUI" no início e CANCEL "APIGUI" no final.
Parabéns pelo Blog.
Fernando Lordão
Postar um comentário