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.

note

LibreOfficeDev 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ý typ:

Objekt

Parametry:

Název

Typ

Popis

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.


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:


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

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.