Συνάρτηση CreateUnoValue

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

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

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

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


Σύνταξη:


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

Τύπος επιστροφής:

Αντικείμενο

Παράμετροι:

Όνομα

Τύπος

Περιγραφή

Τύπος

String

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

Τιμή

Object

Μια αυστηρά τυποποιημένη τιμή.


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

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

Παράδειγμα:


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

Παράδειγμα:

Αυτή η συνάρτηση προορίζεται για χρήση σε περιπτώσεις όπου ο προεπιλεγμένος μηχανισμός μετατροπής τύπου 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.

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

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