Functie CreateUnoValue

Geeft een object dat voor een nauwkeurig getypeerde waarde staat die naar het Uno-typesysteem verwijst.

Dit object wordt automatisch geconverteerd naar een Any van het overeenkomstige type wanneer het wordt doorgegeven aan Uno. Het type moet worden gespecificeerd met de volledig gekwalificeerde Uno-typenaam.

note

De LibreOffice API gebruikt vaak het type Any. Het is de tegenhanger van het type Variant dat bekend is uit andere omgevingen. Het Any type bevat één willekeurig Uno-type en wordt gebruikt in generieke Uno-interfaces.


Syntaxis:


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

Retourtype:

Object

Parameters:

Naam

Type

Beschrijving

Type

String

De volledig gekwalificeerde Uno-typenaam. Ondersteunde gegevenstypen zijn void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type en any. Namen zijn hoofdlettergevoelig en kunnen worden voorafgegaan door vierkante haken om een matrix aan te geven.

Waarde

Object

Een strikt getypte waarde.


Foutcodes:

Als CreateUnoValue de waarde niet kan converteren naar het opgegeven Uno-type, treedt er een fout op. De dienst com.sun.star.script.Converter is verantwoordelijk voor de conversie.

Voorbeeld:


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

Voorbeeld:

Deze functie is bedoeld voor gebruik in situaties waarin het standaard conversiemechanisme van het type Basic naar Uno onvoldoende is. Dit gebeurt door generieke op Any gebaseerde API-methodes aan te roepen, zoals com.sun.star. bonen.XPropertySet.setPropertyValue() of com.sun.star .container.XNameContainer.insertByName(). CreateUnoValue() stelt een waardeobject in voor het onbekende Uno-type.

Dit voorbeeld gebruikt com.sun.star.beans.XPropertySet.addProperty() methode om een documenteigenschap te maken waarvan de standaardwaardes het gebruik van CreateUnoValue() vereisen:


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

U kunt deze functie ook gebruiken om non-Any waardes door te geven, maar dit wordt niet aanbevolen. Als Basic het doeltype al kent, zal het gebruik van de functie CreateUnoValue() alleen leiden tot extra conversiebewerkingen die de Basic-uitvoering vertragen.

Help ons, alstublieft!