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.

IcĂŽne Remarque

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.

Aidez-nous !