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.

Ikona notatki

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 

Zwracana wartość:

Obiekt

Parametry:

Typ: 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. W nazwach rozróżniana jest wielkość liter i mogą być poprzedzone nawiasami kwadratowymi, aby wskazać tablicę.

Value: Ściśle wpisana wartość.


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

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:

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!