Inhalte
Index 🔎︎

# Funktion CreateUnoValue

Gibt ein Objekt zurück, das einen in Bezug auf das Uno-Typensystem strikt typisierten Wert darstellt.

Das Objekt wird bei der Übergabe an Uno automatisch in einen Any des entsprechenden Typs konvertiert. Der Typ muss durch seinen voll qualifizierten Uno-Typennamen angegeben werden.

Die LibreOffice-API verwendet häufig den Typ "Any". Dieser ist das Gegenstück zu dem aus anderen Umgebungen bekannten Typ "Variant". Der Typ "Any" nimmt einen beliebigen Uno-Typ auf und wird in generischen Uno-Schnittstellen verwendet.

### Syntax:

oUnoWert = CreateUnoValue( "[]byte", MeinBasicWert ) ' zum Abrufen einer Bytefolge.

Wenn CreateUnoValue nicht in den angegebenen Uno-Typ konvertiert werden kann, tritt ein Fehler auf. Für die Konvertierung wird der Dienst com.sun.star.script.Converter verwendet.

Diese Funktion ist für Situationen vorgesehen, in denen der Standardkonvertierungsmechanismus vom Typ BasicToUno nicht ausreicht. Dies kann passieren, wenn Sie versuchen, auf generische beliebige Schnittstellen zuzugreifen, beispielsweise XPropertySet::setPropertyValue(Name, Wert) oder X???Container::insertBy???(???, Value), von LibreOffice Basic. Die Basislaufzeit erkennt diese Typen nicht, da sie nur im entsprechenden Dienst definiert sind.

In dieser Situation wählt LibreOffice Basic den am besten passenden Typ für den Basic-Typ aus, den Sie konvertieren möchten. Wenn jedoch der falsche Typ ausgewählt wird, tritt ein Fehler auf. Mit der Funktion CreateUnoValue() erstellen Sie einen Wert für den unbekannten Uno-Typ.

Sie können diese Funktion auch verwenden, um nicht-beliebige Werte zu übergeben. Dies wird jedoch nicht empfohlen. Wenn Basic den Zieltyp bereits kennt, führt die Verwendung der Funktion CreateUnoValue() nur zu zusätzlichen Konvertierungsvorgängen, die die Basic-Ausführung verlangsamen.