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 CreateUnoValue ne peut pas être converti dans le type Uno spécifié, une erreur se produit. Pour la conversion, le service com.sun.star.script.Converter est utilisé.

Cette fonction est destinée à être utilisée dans des situations où le mécanisme de conversion de type Basic en Uno par défaut est insuffisant. Cela peut se produire lorsque vous essayez d'accéder à des interfaces génériques de type Any, telles que XPropertySet :: setPropertyValue( Name, Value ) ou X ??? Container :: insertBy???( ??? , Value ), de LibreOffice Basic. L'exécuteur de base ne reconnaît pas ces types car ils sont uniquement définis dans le service correspondant.

Dans ce type de situation, LibreOffice Basic choisit le meilleur type de correspondance pour le type Basic à convertir. Cependant, si le mauvais type est sélectionné, une erreur se produit. Vous utilisez la fonction CreateUnoValue() pour créer une valeur pour le type Uno inconnu.

Vous pouvez également utiliser cette fonction pour passer des valeurs non-Any, mais ce n'est pas recommandé. Si Basic connaît déjà le type cible, l'utilisation de la fonction CreateUnoValue() ne mènera qu'à des opérations de conversion supplémentaires qui ralentiront l'exécution de Basic.