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.

Ícone de nota

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.

Necessitamos da sua ajuda!

Necessitamos da sua ajuda!