CreateUnoValue-funktion

Returnerer et objekt som repræsenterer en nøje indtastet værdi, refererende til Uno-type systemet.

Dette objekt bliver automatisk konverteret til en Any af tilsvarende type, når det overføres til Uno. Typen må være specificeret med det fuldt kvalificerede Uno-typenavn.

Noteikon

LibreOffice API bruger ofte typen Any. Typen er modstykket til Variant-typen kendt fra andre miljøer. Any-typen kan indeholde en vilkårlig Uno-type og bruges de generiske Uno-grænseflader.


Syntaks:


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

Returværdi:

Objekt

Parametre:

Type: Det fuldt kvalificerede Uni-typenavn. Understøttede datatyper er void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type og any. Navne skelner mellem store og små bogstaver, og firkantede parenteser foran navnet kan bruges til at angive et array.

Value: En strengt typeangivet værdi.


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

Fejlkoder:

Hvis CreateUnoValue ikke kan konvertere værdien til den specificerede Uno-type, opstår en fejl. Servicen com.sun.star.script.Converter er ansvarlig for konverteringen.

Eksempel:

Denne funktion er beregnet til brug i situationer, hvor den almindelige Basic-til-Uno konverteringsmekanisme er utilstrækkelig. Dette sker ved kald af generiske Any-baserede API-metoder, for eksempel com.sun.star.beans.XPropertySet.setPropertyValue() eller com.sun.star.container.XNameContainer.insertByName(). Funktionen CreateUnoValue() fastlægger et værdiobjekt for den ukendte Uno-type.

Dette eksempel bruger com.sun.star.beans.XPropertySet.addProperty() metoden til at oprette en dokumentegenskab, hvor standardværdierne kræver brug af CreateUnoValue():


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

Du kan også bruge denne funktion til at overføre værdier af andre typer end Any, men det anbefales ikke. Hvis Basic allerede kende måltype, så vil brug af CreateUnoValue()-funktionen kun lede til flere konverteringsoperationer, som vil gøre udførelsen af Basic langsommere.

Støt os venligst!