Funkcja CreateUnoValue

Zwraca obiekt odpowiadający dokładnie wprowadzonej wartości odnoszącej się do systemu typu Uno.

Po przekazaniu do UNO obiekt jest automatycznie konwertowany do odpowiadającego mu typu Any. Typ musi zostać określony przez w pełni kwalifikowaną nazwę typu UNO.

note

Interfejs API LibreOffice często używa typu Any. Jest odpowiednikiem typu Variant znanego z innych środowisk. Typ Any zawiera jeden dowolny typ UNO i jest używany w ogólnych interfejsach UNO.


Składnia:


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

Typ zwracany:

Obiekt

Parametry:

Nazwa

Typ

Opis

Typ

String

W pełni kwalifikowana nazwa typu Uno. Obsługiwane typy danych to void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type i any. Nazwy są rozróżniane wielkością liter i mogą być poprzedzone nawiasami kwadratowymi w celu wskazania tablicy.

Wartość

Object

Wartość ściśle określona.


Kody błędów:

Jeśli CreateUnoValue nie może przekonwertować wartości na określony typ UNO, wystąpi błąd. Za konwersję odpowiada usługa com.sun.star.script.Converter.

Przykład:


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

Przykład:

Ta funkcja jest przeznaczona do użycia w sytuacjach, gdy domyślny mechanizm konwersji typu Basic na UNO jest niewystarczający. Dzieje się tak, wywołując ogólne metody API oparte na Any, takie jak com.sun.star.beans.XPropertySet.setPropertyValue() lub com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() ustawia obiekt wartości dla nieznanego typu UNO.

W tym przykładzie użyto com.sun.star.beans.XPropertySet.addProperty() metody tworzenia właściwości dokumentu, której wartości domyślne wymagają użycia CreateUnoValue():


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

Możesz także użyć tej funkcji do przekazywania wartości innych niż Any, ale nie jest to zalecane. Jeśli Basic zna już typ docelowy, użycie funkcji CreateUnoValue() doprowadzi tylko do dodatkowych operacji konwersji, które spowalniają wykonywanie Basic.

Prosimy o wsparcie!