Obsah
Rejstřík 🔎︎

# Funkce CreateUnoValue

Vrátí objekt, který představuje striktně typovou hodnotu odkazující na typ Uno.

Tento objekt se při předání do Uno automaticky převede na odpovídající typ Any. Typ musí být určen plně kvalifikovaným názvem typu Uno.

LibreOffice API používá typ Any často. Odpovídá typu Variant známému z jiných prostředí. Typ Any obsahuje jeden určený typ Uno a používají jej obecná Uno rozhraní.

### Syntaxe:

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

### Návratová hodnota:

Objekt

### Parametry:

Type: Plně kvalifikovaný název typu Uno. Podporovanými datovým typy void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type a any. U názvů se rozlišuje velikost písmen a mohou jim předcházet hranaté závorky označující pole.

Value: Striktně typová hodnota.

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

### Chybové kódy:

Jestliže hodnotu nelze funkcí CreateUnoValue převést na určený typ Uno, nastane chyba. Za převod je zodpovědná služba com.sun.star.script.Converter.

### Příklad:

Tato funkce je určena pro použití v situacích, kdy nepostačuje základní mechanismus převodu z typu Basicu na typ Uno. K tomu dojde, pokud zavoláte obecné metody API založené na Any, například com.sun.star.beans.XPropertySet.setPropertyValue() nebo com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() nastaví pro takový neznámý typ Uno hodnotu objektu.

V tomto příkladu je použita metoda com.sun.star.beans.XPropertySet.addProperty() za účelem vytvoření vlastnosti dokumentu, jejíž výchozí hodnoty vyžadují použití funkce CreateUnoValue():

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

Tuto funkci je také možné použít pro předávání hodnot jiných typů než Any. To však nedoporučujeme. Pokud jazyk Basic již cílový typ zná, použitím funkce CreateUnoValue() jen vyvoláte další převodní operaci, která zpomalí běh programu.