CreateUnoValue-funksjon

Innhold

# CreateUnoValue-funksjonen

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

Dette objektet konverteres automatisk til en Any 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:

      CreateUnoValue(Type As String, Value As Object) As Object

### Returverdi:

Objekt

### Parametre:

Type: Det fullt kvalifiserte Uno-typenavnet. Støttede datatyper er void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, flyte, double, string, type og any. Navn skiller mellom store og små bokstaver og kan innledes med hakeparenteser for å indikere en matrise.

Value: En strengt skrevet verdi.

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

### Feilkoder

Hvis CreateUnoValue ikke kan konvertere verdien til den angitte Uno-typen, oppstår det en feil. Tjenesten com.sun.star.script.Converter er ansvarlig for konverteringen.

### Eksempel:

Denne funksjonen er ment for bruk i situasjoner der standard konverteringsmekanisme av typen Basic til Uno er utilstrekkelig. Dette skjer ved å kalle generiske Alle-baserte API-metoder, for eksempel com.sun.star. beans.XPropertySet.setPropertyValue() eller com.sun.star .container.XNameContainer.insertByName(). CreateUnoValue() setter et verdiobjekt for den ukjente Uno-typen.

Dette eksemplet bruker com.sun.star.beans.XPropertySet.addProperty()-metoden for å lage en dokumentegenskap hvis standardverdier krever CreateUnoValue()-bruk:

      With ThisComponent.DocumentProperties.getUserDefinedProperties()
          .addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
      End With

Du kan også bruke denne funksjonen til å sende non-Any verdier, 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.