Sumário
Índice 🔎︎

# Função CreateUnoValue

Retorna um objeto que representa um valor fortemente tipado referente ao sistema de tipo Uno.

Este objeto será automaticamente convertido para um Any do tipo correspondente quando for passado para Uno. O tipo deve ser especificado pelo seu nome de tipo Uno totalmente qualificado.

O API do LibreOffice frequentemente usa o tipo Any. Ele é a réplica do tipo Variant conhecido de outros ambientes. O tipo Any possui um tipo Uno arbitrário e é usado em interfaces Uno genéricas.

### Sintaxe:

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

### Valor de retorno:

Objeto

### Parâmetros:

Type: o nome completo do tipo Uno. Os tipos de dados considerados são void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type, and any. Os nomes distinguem maiúsculas de minúsculas e podem ser precedidos por colchetes para indicar uma matriz.

Value: Um valor estritamente tipificado.

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

### Códigos de erro:

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

### Exemplo:

Esta função é destinada a ser utilizada nas situações onde o mecanismo de conversão de tipo Basic para Python for insuficiente. Isso ocorre ao chamar os métodos API genéricas baseados em Any, tais como com.sun.star.beans.XPropertySet.setPropertyValue() ou com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() define um objeto de tipo Uno desconhecido.

Esse exemplo usa o método com.sun.star.beans.XPropertySet.addProperty() para criar uma propriedade de documento cujos valores padrão requerem uso de CreateUnoValue():

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

Você também pode usar esta função para passar valores diferentes de Any, mas isso não é recomendado. Se o BASIC já souber o tipo de destino, o uso da função CreateUnoValue() resultará apenas em operações de conversão adicionais, que tornarão a execução do BASIC mais lenta.