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.

Cet objet est automatiquement converti en un Any du type correspondant lorsqu'il est passé à Uno. Le type doit être spécifié par son nom de type Uno complet.

L'API LibreOffice utilise fréquemment le type Any. C'est le pendant du type Variant connu dans d'autres environnements. Le type Any contient un type Uno arbitraire et est utilisé dans les interfaces Uno génériques.

### Syntaxe :

      CreateUnoValue(Type As String, Value As Object) As Object

### Valeur de retour :

Objet

### Paramètres :

Type : le nom complet du type Uno. Les types de données pris en charge sont void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type et any. Les noms sont sensibles à la casse et peuvent être précédés de crochets pour indiquer une matrice.

Value : une valeur strictement typée.

       byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))

### Codes d'erreur :

Si CreateUnoValue ne peut pas convertir la valeur dans le type Uno spécifié, une erreur se produit. Le service com.sun.star.script.Converter est responsable de la conversion.

### Exemple :

Cette fonction est destinée à être utilisée dans les situations où le mécanisme de conversion de type Basic vers Uno par défaut est insuffisant. Cela se produit en appelant des méthodes API génériques basées sur Any, telles que com.sun.star. beans.XPropertySet.setPropertyValue() ou com.sun.star .container.XNameContainer.insertByName(). CreateUnoValue() définit un objet de valeur pour le type Uno inconnu.

Cet exemple utilise com.sun.star.beans.XPropertySet.addProperty() pour créer une propriété de document dont les valeurs par défaut nécessitent l'utilisation de CreateUnoValue() :

      With ThisComponent.DocumentProperties.getUserDefinedProperties()
          .addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
      End With

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