Conteúdo
Í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:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' para obter uma sequência de bytes.

Caso CreateUnoValue não possa ser convertido para o tipo Uno especificado, um erro ocorrerá. Para a conversão, o serviço com.sun.star.script.Converter é usado.

Esta função destina-se às situações onde o mecanismo de conversão do tipo Basic padrão para o tipo Uno é insuficiente. Isso pode acontecer quando tentar acessar interfaces genéricas baseadas em Any, tais como XPropertySet::setPropertyValue( Name, Value ) ou X???Container::insertBy???( ???, Value ), do LibreOffice Basic. O tempo de execução do Basic não reconhece esses tipos, pois eles são definidos somente no serviço correspondente.

Nessas condições, o LibreOffice Basic escolhe o tipo que melhor se adapta ao tipo do Basic que deseja converter. Entretanto, se um tipo incorreto for selecionado, ocorrerá um erro. Use a função CreateUnoValue() para criar um valor para o tipo Uno desconhecido.

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.