Συνάρτηση CreateUnoValue

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

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

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

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


Σύνταξη:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' για να πάρετε την αλληλουχία byte.

Εάν το CreateUnoValue δεν μπορεί να μετατραπεί στον καθορισμένο τύπο Uno, συμβαίνει σφάλμα. Για τη μετατροπή, χρησιμοποιείται η υπηρεσία TypeConverter.

Αυτή η συνάρτηση χρησιμοποιείται σε περιπτώσεις όπου ο προεπιλεγμένος μηχανισμός μετατροπής τύπου από Basic σε Uno είναι ανεπαρκής. Αυτό μπορεί να συμβεί όταν προσπαθείτε να προσπελάσετε γενικά Any με βάση διεπαφές, όπως XPropertySet::setPropertyValue( Name, Value ) ή X???Container::insertBy???( ???, Value ), από τη Basic του LibreOffice. Ο χρόνος εκτέλεσης Basic δεν αναγνωρίζει αυτούς τους τύπους, επειδή ορίζονται μόνο στην αντίστοιχη υπηρεσία.

Σε αυτές τις περιπτώσεις, το LibreOffice Basic επιλέγει τον βέλτιστο τύπο συμφωνίας για τον τύπο Basic που θέλετε να μετατρέψετε. Όμως, εάν επιλεγεί λανθασμένος τύπος, συμβαίνει σφάλμα. Χρησιμοποιήστε τη συνάρτηση CreateUnoValue() για να δημιουργήσετε μια τιμή για τον άγνωστο τύπο Uno.

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

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