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

LibreOffice API często korzysta z typu Any. Jest to odpowiednik typu Variant znanego w innych środowiskach. Typ Any przechowuje jeden dowolny typ Uno i jest używany w ogólnych interfejsach Uno.


Składnia:

oUnoValue = CreateUnoValue ('[] byte', MyBasicValue) ' aby uzyskać sekwencję bajtów.

Jeśli CreateUnoValue nie można konwertować do określonego typu Uno, powoduje to wystąpienie błędu. W celu konwersji należy użyć usługi TypeConverter.

Funkcja ta jest używana w sytuacjach, w których stosowany w języku Basic domyślny mechanizm konwersji do typu Uno jest niewystarczający. Sytuacja taka może mieć miejsce przy próbie dostępu do ogólnych interfejsów opartych na Any, takich jak XPropertySet::setPropertyValue( Name, Value ) lub X???Container::insertBy???( ???, Value ) z LibreOffice Basic. Programy Basic nie rozpoznają tych typów, ponieważ zostały one zdefiniowane w odpowiadającej im usłudze.

W takiej sytuacji LibreOffice Basic wybiera typ przekształcenia najbardziej zbliżony do typu Basic. Jednak wybór niewłaściwego typu powoduje błąd. W takiej sytuacji użycie funkcji CreateUnoValue() pozwala na utworzenie wartości dla nieznanego typu Uno.

Z funkcji tej można skorzystać także w celu przekazania wartości innych niż Any, jednak takie zastosowanie nie jest zalecane. Jeśli Basic zna już typ docelowy, zastosowanie funkcji CreateUnoValue() prowadzi jedynie do dodatkowych operacji konwersji spowalniających wykonywanie programów Basic.