Contents
Index 🔎︎

# CreateUnoValue Function

CreateUnoValue palauttaa olion, joka esittää rajatusti tyypitetyn arvon, joka perustuu Uno-tyyppijärjestelmään.

Tämä olio muuntuu tyyppiä vastaavaksi Any-tyypiksi kun se välitetään Unoon. Tyyppi pitää olla määritetty täydellisellä Uno-tyyppinimellä.

LibreOffice API käyttää säännönmukaisesti Any-tyyppiä (any tarkoittaa mikä tahansa). Se vastaa muissa ympäristöissä tunnettua Variant-tyyppiä. Any-tyyppi pitää yhden vapaavalintaisen Uno-tyypin ja sitä käytetään yleisissä Uno-rajapinnoissa.

## Syntaksi:

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

CreateUnoValue-muunnos määrätyksi Uno-tyypiksi ei onnistu, tapahtuu virhe. Muunnokseen käytetään TypeConverter-palvelua.

Tätä funktiota on tarkoitus käyttää tilanteissa, jossa oletuksellinen Basicista Uno-tyypiksi muunnoksen mekanismi on riittämätön. Tämä voi sattua, kun yritetään tavoittaa yleistä Any-pohjaista rajapintaa, sellaista kuin XPropertySet::setPropertyValue( nimi, arvo ) tai X???Container::insertBy???( ???, arvo ) LibreOffice Basicista käsin. Ajonaikainen Basic ei tunnista näitä tyyppejä, koska ne ovat määriteltyjä vain vastaavassa palvelussa.

Tässä tilanteessa LibreOffice Basic valitsee parhaiten sopivan tyypin Basic-tyypiksi, jonka haluat muuntaa. Jos kuitenkin väärä tyyppi tulee valituksi, tapahtuu virhe. CreateUnoValue()-funktiota käytetään luomaan arvo tuntemattomalle Uno_tyypille.

Tätä funktiota voidaan käyttää myös ei-Any-arvojen välittämiseen, mutta tätä ei suositella. Jos Basic jo tuntee kohdetyypin, CreateUnoValue()- funktion käyttö johtaa vain ylimääräiseen muunnostoimintaan, joka hidastaa Basicin suoritusta.