Conteúdo
Índice 🔎︎

# 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 transferido para Uno. O tipo terá de ser especificado pelo seu nome de tipo Uno completo.

A API do LibreOffice utiliza frequentemente o tipo Any. É o equivalente do tipo de variante conhecido noutros ambientes. O tipo Any suporta um tipo Uno arbitrário e é utilizado em interfaces genéricas Uno.

## Sintaxe:

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

Se CreateUnoValue não puder ser convertido no tipo de Uno especificado, ocorre um erro. Para a conversão, é utilizado o serviço TypeConverter.

Esta função é utilizada em situações nas quais o mecanismo de conversão de tipo do Basic padrão para Uno é insuficiente. Esta situação pode ocorrer quando tenta aceder a interfaces genéricas baseadas em Any, tais como XPropertySet::setPropertyValue( Nome, Valor ) ou X???Container::insertBy???( ???, Valor ), do LibreOffice Basic. O tempo de execução do Basic não reconhece estes tipos porque só são definidos no serviço correspondente.

Nestas situações, o LibreOffice Basic escolhe o tipo que melhor corresponde ao tipo do Basic que pretende converter. No entanto, se for selecionado o tipo errado, ocorre um erro. Utiliza-se a função CreateUnoValue() para criar um valor para o tipo desconhecido de Uno.

É também possível utilizar esta função para transferir valores que não sejam Any, mas este processo não é recomendado. Se o Basic já está familiarizado com o tipo pretendido, utilizar a função CreateUnoValue() só levará a mais operações de conversão que tornarão mais lenta a execução do Basic.