Módulo
Contido
Índice 🔎︎

# CreateUnoValue Function

Devolve un obxecto que representa un valor de tipo estrito referente ao sistema de tipos Uno.

Este obxecto convértese automaticamente ao Any do tipo correspondente cando se pasa a Uno. O tipo debe especificarse por medio do seu nome de tipo Uno cualificado.

O API de LibreOffice usa con frecuencia o tipo Any. É o equivalente ao tipo Variante utilizado noutros contornos. Posúe un tipo Uno arbitrario e utilízase en interfaces Uno xenéricas.

## Sintaxe:

    oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' to get a byte sequence.

Se CreateUnoValue non pode converterse ao tipo Uno especificado, prodúcese un erro. Para a conversión, utilízase o servizo TypeConverter.

Esta función destínase ás situacións onde o mecanismo predefinido de conversión de Basic a Uno é insuficiente. Isto pode acontecer se tenta acceder a interfaces xenéricas baseadas en Any, como o de XPropertySet::setPropertyValue( Nome, Valor ) ou X???Container::insertBy???( ???, Valor ), desde LibreOffice Basic. O tempo de execución de Basic non recoñece eses tipos, pois só están definidos no servizo correspondente.

In this type of situation, LibreOffice Basic chooses the best matching type for the Basic type that you want to convert. However, if the wrong type is selected, an error occurs. You use the CreateUnoValue() function to create a value for the unknown Uno type.

Tamén pode usar esta función para pasar valores diferentes de Any, aínda que non é recomendábel. Se Basic xa coñece o tipo de destino, ao utilizar a función CreateUnoValue() só se engaden operacións adicionais de conversión, que retardan a execución de Basic.