Συνάρτηση CreateUnoValue

Επιστρέφει ένα αντικείμενο που αντιπροσωπεύει μια αυστηρά δηλωμένη τιμή που αναφέρεται στο σύστημα τύπων Uno.

Αυτό το αντικείμενο μετατρέπεται αυτόματα σε Any του αντίστοιχου τύπου όταν μεταβιβαστεί στο Uno. Ο τύπος πρέπει να προσδιορίζεται από το πλήρως αναγνωρισμένο όνομα τύπου Uno.

Εικονίδιο σημείωσης

Το API τουLibreOffice χρησιμοποιεί συχνά τον τύπο Any. Είναι το αντίστοιχο του τύπου Variant που είναι γνωστός από άλλα περιβάλλοντα. Ο τύπος Any περιέχει έναν αυθαίρετο τύπο Uno και χρησιμοποιείται σε γενικές διεπαφές Uno.


Σύνταξη:


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

Επιστρεφόμενη τιμή:

Αντικείμενο

Παράμετροι:

Type: Το πλήρως πιστοποιημένο όνομα τύπου Uno. Οι υποστηριζόμενοι τύποι δεδομένων είναι void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type, και any. Τα ονόματα κάνουν διάκριση πεζών-κεφαλαίων και μπορεί να προηγούνται αγκύλες για να υποδείξουν έναν πίνακα.

Value: Μια αυστηρά πληκτρολογημένη τιμή.


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

Κωδικοί σφάλματος:

Εάν το CreateUnoValue δεν μπορεί να μετατρέψει την τιμή στον καθορισμένο τύπο Uno, παρουσιάζεται σφάλμα. Η υπηρεσία com.sun.star.script.Converter είναι υπεύθυνη για τη μετατροπή.

Παράδειγμα:

Αυτή η συνάρτηση προορίζεται για χρήση σε περιπτώσεις όπου ο προεπιλεγμένος μηχανισμός μετατροπής τύπου Basic σε Uno είναι ανεπαρκής. Αυτό συμβαίνει με την κλήση γενικών μεθόδων API που βασίζονται σε Any, όπως com.sun.star. beans.XPropertySet.setPropertyValue(), ή com.sun.star.container.XNameContainer.insertByName(). Το CreateUnoValue() ορίζει ένα αντικείμενο τιμής για τον άγνωστο τύπο Uno.

Αυτό το παράδειγμα χρησιμοποιεί τη μέθοδο com.sun.star.beans.XPropertySet.addProperty( για τη δημιουργία μιας ιδιότητας εγγράφου της οποίας οι προεπιλεγμένες τιμές απαιτούν χρήση του CreateUnoValue():


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

Μπορείτε επίσης να χρησιμοποιήσετε αυτήν τη συνάρτηση για να μεταβιβάσετε τιμές non-Any, αλλά αυτό δεν συνιστάται. Εάν η Basic γνωρίζει ήδη τον τύπο προορισμού, η χρήση της συνάρτησης CreateUnoValue() θα οδηγήσει μόνο σε πρόσθετες λειτουργίες μετατροπής που επιβραδύνουν την εκτέλεση της Basic.

Παρακαλούμε, υποστηρίξτε μας!