Inhoud
Index 🔎︎

# Functie CreateUnoValue

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

Het object wordt automatisch geconverteerd naar een 'Any' van het overeenkomstige type wanneer het aan Uno doorgegeven wordt. Het type moet gespecificeerd worden met zijn volledige Uno-typenaam.

De LibreOffice-API maakt regelmatig gebruik van het Any-type. Het is de tegenhanger van het Variant-type dat bekend is uit andere omgevingen. Het Any-type omvat één willekeurig Uno-type en wordt in algemene Uno-interfaces gebruikt.

### Syntaxis:

oUnoWaarde = CreateUnoValue( "[]byte", MijnBASICWaarde ) ' om een byte-reeks te krijgen.

Als de CreateUnoValue niet geconverteerd kan worden naar het gespecificeerde Uno-type, dan treedt er een fout op. Voor de conversie wordt de service TypeConverter gebruikt.

Deze functie is bedoeld om gebruikt te worden in situaties waar de standaardconversie van Basic naar Uno-type niet voldoet. Dit kan voorkomen als u probeert toegang te krijgen tot generieke 'Any' gebaseerde interfaces, zoals XPropertySet::setPropertyValue( Name, Value ) of X???Container::insertBy???( ???, Value ), in LibreOffice Basic. Op uitvoeringstijd herkent Basic deze types niet omdat ze gedefinieerd worden in de bijbehorende service.

In deze gevallen kiest LibreOffice Basic het meest overeenkomende type bij het Basic type dat u wilt converteren. Er treedt echter een fout op als een verkeerd type is geselecteerd. Gebruik de functie CreateUnoValue om een variabele met een onbekend Uno-type een waarde te geven .

U kunt deze functie ook gebruiken om 'non-Any' waarden door te geven, maar dat wordt niet aangeraden. Als Basic het doeltype al kent, zorgt het gebruik van de functie CreateUnoValue() alleen voor aanvullende converteeropdrachten die de uitvoering van de code vertragen.