Module
Contents
Index 🔎︎

# CreateUnoValue Function

Vráti objekt, ktorý predstavuje striktne typovú hodnotu odkazujúci na typ Uno.

Tento objekt sa pri odovzdaný do UNO automaticky prevedie na príslušný typ. Typ musí byť určený plne kvalifikovaným názvom typu UNO.

LibreOffice API často používa typ Any. Je opakom typu Variant známeho z iných prostredí. Typ Any platí pre jeden ľubovoľný typ UNO a používa sa vo všeobecných UNO rozhraniach.

## Syntax:

    oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' to get a byte sequence.

Pokiaľ nemožno CreateUnoValue previesť na určený typ Uno, dôjde k chybe. Pre prevod sa používa služba TypeConverter.

Táto funkcia je určená na použitie v situáciách, kedy nepostačuje základný mechanizmus prevodu z typu Basic na typ Uno. K tomu dôjde, pokiaľ sa z LibreOffice Basic snažíte pristupovať k obecnému Any založenému na rozhraniach, ako napr. XPropertySet::setPropertyValue( Name, Value ) alebo X???Container::insertBy???( ???, Value ). Basic tieto typy nerozozná, keďže sú definované len v príslušnej službe.

V takej situácii LibreOffice Basic vyberie najlepší zodpovedajúci typ pre typ Basic, ktorý chcete previesť. Pokiaľ však typ vyberie špatne, dôjde k chybe. Preto použijete funkciu CreateUnoValue() pre vytvorenie hodnoty neznámeho typu Uno.

Túto funkciu je tiež možné použiť na odovzdanie hodnôt aj iných typov ako Any. To však neodporúčame. Pokiaľ jazyk Basic už pozná cieľový typ, použitím funkcie CreateUnoValue() len zavediete ďalšie operácie na konvertovanie, ktoré spomalia beh programu.