CreateUnoValue-functie

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.

Notitiepictogram

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 CreateUnoValue niet naar het gespecificeerde Uno-type geconverteerd kan worden, treedt er een fout op. Voor de conversie wordt de TypeConverter-service gebruikt.

Deze functie is bedoeld voor gebruik in situaties waar het standaardmechanisme voor conversie van BASIC- naar Uno-type ontoereikend is. Dit kan gebeuren wanneer u toegang probeert te krijgen tot algemene Any-gebaseerde interfaces, zoals XPropertySet::setPropertyValue( Naam, Waarde) of X???Container::insertBy???( ???, Waarde ), van LibreOffice BASIC. Deze typen worden niet door de BASIC-runtime herkend, omdat ze alleen in de overeenkomstige service gedefinieerd worden.

In deze situaties kiest LibreOffice BASIC het type dat het best overeenkomt met het BASIC-type dat u wilt converteren. Wordt echter het verkeerde type geselecteerd, dan treedt er een fout op. Gebruik in dat geval de CreateUnoValue()-functie om een waarde voor het onbekende Uno-type te maken.

U kunt deze functie ook gebruiken om non-Any-waarden door te geven, hoewel dit niet raadzaam is. Als BASIC het doeltype al kent, leidt het gebruik van de CreateUnoValue()-functie enkel tot extra conversiebewerkingen die de BASIC-uitvoering vertragen.