Contenido
Índice 🔎︎

# Función CreateUnoValue

Devuelve un objeto que representa un valor de tipo estricto y que se refiere al sistema de tipos Uno.

Este objeto se convierte automáticamente al tipo Any del sistema correspondiente cuando se pasa a Uno. El tipo debe estar especificado por su nombre de tipo Uno calificado.

La API de LibreOffice usa con frecuencia el tipo Any. Es el equivalente del tipo Variante utilizado en otros entornos. El tipo Any contiene un tipo Uno arbitrario y se utiliza en interfaces Uno genéricas.

## Sintaxis:

    oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' para obtener una secuencia de bytes.

Si CreateUnoValue no puede convertirse al tipo Uno especificado, se produce un error. Para la conversión se utiliza el servicio TypeConverter.

Esta función está pensada para utilizarla en situaciones en que el mecanismo predeterminado de conversión de Basic a Uno resulta insuficiente. Esto puede producirse cuando se intenta acceder a interfaces genéricas basadas en Any, como el de XPropertySet::setPropertyValue( Nombre, Valor ) o X???Container::insertBy???( ???, Valor ), desde LibreOffice Basic. El tiempo de ejecución de Basic no reconoce estos tipos, ya que sólo están definidos en el servicio correspondiente.

En estas circunstancias, LibreOffice Basic elige el tipo que mejor coincida con el tipo de Basic que desea convertir. Ahora bien, si se selecciona un tipo incorrecto, se genera un error. Utilice la función CreateUnoValue() para crear un valor para el tipo desconocido Uno.

También se puede utilizar esta función para pasar valores que no sean Any, aunque no es recomendable hacerlo. Si Basic ya conoce el tipo de destino, el uso de la función CreateUnoValue() resultará solo en más operaciones de conversión que lentificarán la ejecución de Basic.