Funkcija CreateUnoValue

Vrne predmet, ki predstavlja striktno tipizirano vrednost z ozirom na sistem vrste Uno.

Ta predmet se samodejno preoblikuje v Any ustrezne vrste, ko je podan v Uno. Vrsto je potrebno navesti s polnim kvalificiranim imenom vrste Uno.

Ikona opombe

LibreOffice API pogostoma uporablja vrsto Any. Gre za dvojčka vrste Variant, ki ga poznamo iz drugih okolij. Vrsta Any vsebuje poljubno vrsto Uno in se jo uporablja v generičnih vmesnikih Uno.


Skladnja:


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

Vrnjena vrednost:

Predmet

Parametri:

Type: polno kvalificirano ime vrste Uno. Podprte vrste podatkov so void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type in any. Pri imenih je pomembno razločevati med malimi in velikimi črkami; imena lahko predhajajo oglati oklepaji, ki nakazujejo polje.

Value je strogo določena vrednost za vrsto.


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

Kode napak:

Če CreateUnoValue ni mogoče pretvoriti v navedeno vrsto Uno, pride do napake. Za pretvorbo se uporablja storitev com.sun.star.script.Converter.

Primer:

Ta funkcija je namenjena rabi, ko je privzeti mehanizem pretvorbe med vrstami Basic v Uno nezadosten. To se zgodi pri klicih generičnih metod API-ja Any, kot sta com.sun.star.beans.XPropertySet.setPropertyValue() in com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() določi vrednost predmeta za neznano vrsto Uno.

Ta primer uporablja metodo com.sun.star.beans.XPropertySet.addProperty() za ustvarjanje lastnosti dokumenta, katere privzete vrednosti zahtevajo rabo CreateUnoValue():


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

Funkcijo lahko uporabite tudi za to, da podajate vrednosti, ki niso vrste Any, vendar to ni priporočeno. Če ciljno vrsto Basic že pozna, bo z uporabo funkcije CreateUnoValue() prišlo samo do dodatnih pretvorb, ki bodo samo upočasnjevale izvajanje Basica.

Podprite nas!