Funktion CreateUnoValue

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

Dieses Objekt wird bei der Übergabe an Uno automatisch in ein Any des entsprechenden Typs konvertiert. Der Typ muss durch seinen vollständig qualifizierten Uno-Typnamen angegeben werden.

note

Die LibreOfficeDev-API verwendet häufig den Typ Any. Es ist das Gegenstück zum aus anderen Umgebungen bekannten Typ Variant. Der Typ Any enthält einen beliebigen Uno-Typ und wird in generischen Uno-Schnittstellen verwendet.


Syntax:


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

Return type:

Objekt

Parameter:

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.


Fehlercodes:

Wenn CreateUnoValue den Wert nicht in den angegebenen Uno-Typ konvertieren kann, tritt ein Fehler auf. Für die Konvertierung ist der Dienst com.sun.star.script.Converter zuständig.

Beispiel:


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

Beispiel:

Diese Funktion ist für den Einsatz in Situationen gedacht, in denen der Standardmechanismus zur Konvertierung des Typs „Basic“ in „Uno“ nicht ausreicht. Dies geschieht durch Aufrufen generischer Any-basierter API-Methoden, wie beispielsweise com.sun.star.beans.XPropertySet.setPropertyValue() oder com.sun.star .container.XNameContainer.insertByName(). CreateUnoValue() legt ein Wertobjekt für den unbekannten Uno-Typ fest.

In diesem Beispiel wird die Methode com.sun.star.beans.XPropertySet.addProperty() zum Erstellen einer Dokumenteigenschaft verwendet, deren Standardwerte die Verwendung von CreateUnoValue() erfordern:


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

Sie können diese Funktion auch verwenden, um Werte nicht vom Typ Any 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, welche die Ausführung von Basic verlangsamen.