CreateUnoValue-funksjon

Innhold
Innholdsliste 🔎︎

# CreateUnoValue-funksjonen

Returnerer et objekt som representerer en strengt skrevet verdi som refererer til Uno-typesystemet.

Dette objektet konverteres automatisk til en hvilken som helst av tilsvarende type når det sendes til Uno. Typen må spesifiseres med sitt fullt kvalifiserte Uno-typenavn.

LibreOffice API bruker ofte typen Any. Det er motstykket til Variant-typen kjent fra andre miljøer. Any-typen har én vilkårlig Uno-type og brukes i generiske Uno-grensesnitt.

### Syntaks:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' for å få en bytesekvens.

Hvis CreateUnoValue ikke kan konverteres til den angitte Uno-typen, og det oppstår feil. For konverteringen brukes tjenesten com.sun.star.script.Converter.

Denne funksjonen er ment for bruk i situasjoner der standard konverteringsmekanisme av typen Basic til Uno er utilstrekkelig. Dette kan skje når du prøver å få tilgang til generiske Any-baserte grensesnitt, for eksempel XPropertySet::setPropertyValue( Name, Value ) eller X???Container::insertBy???( ??? , Verdi ), fra LibreOffice Basic. Basic runtime gjenkjenner ikke disse typene da de bare er definert i den tilsvarende tjenesten.

I denne typen situasjoner velger LibreOffice Basic den beste samsvarstypen for Basic-typen du vil konvertere. Men hvis feil type velges, oppstår det en feil. Du bruker funksjonen CreateUnoValue() for å lage en verdi for den ukjente Uno-typen.

Du kan også bruke denne funksjonen til å sende verdier som ikke er alle, men dette anbefales ikke. Hvis Basic allerede kjenner måltypen, vil bruk av CreateUnoValue()-funksjonen bare føre til ytterligere konverteringsoperasjoner som bremser Basic-kjøringen.