Συνάρτηση CreateUnoValue

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

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

note

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


Σύνταξη:


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

Return type:

Αντικείμενο

Παράμετροι:

Name

Type

Description

Type

String

The fully qualified Uno type name. Supported data types are void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type, and any. Names are case sensitive and may be preceded by square brackets to indicate an array.

Value

Object

A strictly typed value.


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

Εάν το 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.

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