Module
Contenu
Index 🔎︎

# Fonction CreateUnoValue

Renvoie un objet qui représente une valeur strictement saisie et faisant référence au système de type Uno.

Lorsqu'il est transmis au système Uno, l'objet est automatiquement converti en "Any" du type correspondant. Le type doit être spécifié sous son nom de type Uno complet.

L'API LibreOffice utilise fréquemment le type Any. Celui-ci équivaut au type Variant des autres environnements. Le type Any, qui contient un type Uno arbitraire, est utilisé dans les interfaces Uno génériques.

## Syntaxe :

    oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' pour obtenir une séquence d'octets.

Si la fonction CreateUnoValue ne peut pas être convertie dans le type Uno spécifié, une erreur se produit. La conversion est effectuée à l'aide du service TypeConverter.

Cette fonction est conçue pour être utilisée dans les situations où le mécanisme de conversion permettant de passer du système Basic vers le système de type Uno ne fonctionne pas. Cela est parfois le cas lorsque l'on tente d'accéder depuis LibreOffice Basic à des interfaces Any génériques telles que XPropertySet::setPropertyValue( Name, Value ) ou X???Container::insertBy???( ???, Value ). L'exécution de Basic ne reconnaît pas ces types car ils sont uniquement définis dans le service correspondant.

Le cas échéant, LibreOffice Basic choisit le type qui correspond le mieux au type Basic à convertir. Toutefois, si le type sélectionné ne convient pas, une erreur se produit. Vous devez alors utiliser la fonction CreateUnoValue() afin de créer une valeur pour le type Uno inconnu.

Vous pouvez également, à l'aide de cette fonction, transmettre des valeurs qui ne sont pas des valeurs Any, mais cela est déconseillé. Si Basic connaît déjà le type de cible, l'utilisation de la fonction CreateUnoValue() a pour seul effet de créer des opérations de conversion supplémentaires qui ralentiront l'exécution du programme Basic.