Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Pasteboard data size
|
Pasteboard data size ( tipoDados ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
tipoDados | String |
![]() |
Tipo de dados a adicionar | |||||
Resultado | Inteiro longo |
![]() |
Tamanho (em bytes) dos dados armazenados na área de transferência ou então código do erro | |||||
O comando Pasteboard data size permite testar se hay dados do tipo tipoDatos na área de transferência.
Se a área de transferência está vazio ou não contém dados de tipo especifico, o comando devolve um erro -102 (ver a tabela de constantes predefinidas). Se a área de transferência contém dados do tipo especificado, o comando devolve o tamanho em bytes destes dados.
Passe em tipodados um valor que defina o tipo de dados a extrair. Pode passar uma firma 4D, um tipo UTI (Mac OS), um nome/número de formato (Windows), ou um tipo de 4 caracteres (compatibilidade). Para maior informação sobre estes tipos, consulte a seção Gerenciar área de transferência
Depois de verificar que a área de transferência contém dados do tipo que desejar, pode extrair essa informação da área de transferência utilizando um dos seguintes comandos:
O código a seguir prova se a área de transferência contém uma imagem jpeg e se for assim, copia a imagem em uma variável 4D:
If(Pasteboard data size(Picture data)>0) ` Há uma imagem na área de transferência?
GET PICTURE FROM PASTEBOARD($vPicVariable) ` Si houver, extrair a imagem da área de transferência
Else
ALERT("Não há imagem na área de transferência.")
End if
Geralmente, as aplicações cortam e copiam dados de tipo TEXT ou PICT na área de transferência, porque a maioria das aplicações reconhecem estes dois tipos de dados padrão. Entretanto, uma aplicação pode colocar na área de transferência várias instâncias dos mesmos dados em formatos diferentes. Por exemplo, cada vez que corta ou copia parte de uma folha de cálculo, a aplicação da folha de cálculo pode colocar os dados em um formato hipotético ‘SPSH’, como também nos formatos SYLK e TEXT. A instância ‘SPSH’ contém os dados estruturados no formato utilizado pela aplicação. A cópia SYLK contém os mesmos dados, mas no formato SYLK, reconhecido pela maioria dos outros programas de folhas de cálculo. Por último, o formato TEXT contém os mesmos dados, sem a informação extra incluída no formato SYLK ou no formato hipotético ‘SPSH’. Neste ponto, quando escreva rotinas de Cortar/Copiar/Colar entre 4D e uma aplicação de folha de cálculo hipotética, assumindo que conhece a descrição do formato ‘SPSH’ e que está preparado para analizar os dados SYLK, pode escrever o código a seguir:
Case of
` Primeiro, verificar se a área de transferência contém os dados da aplicação da folha de cálculo hipotética.
:(Pasteboard data size('SPSH')>0)
` ...
` Segundo, verificar se a área de transferência contém dados em formato Sylk
:(Pasteboard data size('SYLK')>0)
` ...
` Por último, verificar se a área de transferência contém dados em formato Text
:(Pasteboard data size('TEXT')>0)
` ...
End case
Em outras palavras, você tenta extrair da área de transferência a instância de dados que tenha mais informação original.
Se quiser arrastar alguns dados privados de diferentes objetos em seu formulário pode escrever:
//objeto origem
If(FORM Event=On Begin Drag Over)
APPEND DATA TO PASTEBOARD("some.private.data";$data)
End if
//objeto destino
If(FORM Event=On Drag Over)
$0:=Choose(Pasteboard data size("some.private.data")>0;0;-1)
End if
Ver o exemplo do comando APPEND DATA TO PASTEBOARD.
Área de trabalho
GET PASTEBOARD DATA
GET PICTURE FROM PASTEBOARD
Get text from pasteboard
Produto: 4D
Tema: Área de Transferência (Pasteboard)
Número
400
Modificado: 4D v11 SQL
Manual de linguagem 4D ( 4D v20 R7)