Conteúdo

# Função CreateUnoValue

Devolve um objeto que representa um valor escrito e que se refere ao sistema de escrita Uno.

Este objeto é automaticamente convertido num Any do tipo correspondente quando passado para o Uno. O tipo deve ser especificado pelo seu nome de tipo Uno totalmente qualificado.

A API do LibreOffice utiliza frequentemente o tipo Any. Trata-se do equivalente ao tipo Variant conhecido noutros ambientes. O tipo Any contém um tipo Uno arbitrário e é utilizado em interfaces genéricas do Uno.

### Sintaxe:

      CreateUnoValue(Type As String, Value As Object) As Object

### Tipo de retorno:

Objeto

### Parâmetros:

Nome | Tipo | Descrição
--- | --- | ---
Tipo | String | O nome completo do tipo Uno. Os tipos de dados suportados são void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type e any. Os nomes distinguem maiúsculas de minúsculas e podem ser precedidos por parênteses retos para indicar uma matriz.
Valor | Object | Um valor estritamente tipado.

### Códigos de erro

Se CreateUnoValue não conseguir converter o valor para o tipo Uno especificado, ocorre um erro. O serviço com.sun.star.script.Converter é responsável pela conversão.

### Exemplo:

       byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))

### Exemplo:

Esta função destina-se a ser utilizada em situações em que o mecanismo padrão de conversão do tipo Basic para Uno se revela insuficiente. Isto acontece ao chamar métodos da API genéricos baseados em Any, tais como com.sun.star.beans. XPropertySet.setPropertyValue() ou com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() define um objeto de valor para o tipo Uno desconhecido.

Este exemplo utiliza o método com.sun.star. beans.XPropertySet.addProperty() para criar uma propriedade de documento cujos valores por predefinição requerem a utilização de CreateUnoValue():

      With ThisComponent.DocumentProperties.getUserDefinedProperties()
          .addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
      End With

Também é possível utilizar esta função para passar valores que não sejam do tipo Any, mas tal não é recomendado. Se o Basic já conhecer o tipo de destino, a utilização da função CreateUnoValue() apenas resultará em operações de conversão adicionais que tornam a execução do Basic mais lenta.

Tópicos relacionados

UNO Objects, Functions and Services

Necessitamos da sua ajuda!