CreateUnoValue-funktion

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

Dette objekt konverteres automatisk til en Any af den tilsvarende type når den overføres til Uno. Typen skal være angivet ved dets fulde kvalificerede Uno-type navn.

Noteikon

LibreOffice API'en bruger ofte Any-typen. Det er modparten til Variant-typen kendt fra andre miljøer. Any-typen indeholder en vilkårlig Uno-type og bruges i generiske Uno-grænseflader.


Syntaks:

oUnoValue = CreateUnoValue( "[]Byte", MyBasicValue ) ' for at få en bytesekvens.

Hvis CreateUnoValue ikke kan konverteres til den angivne Uno-type, forekommer en fejl. Til konverteringen, bliver tjenesten TypeConverter brugt.

Denne funktion er påtænkt til brug i situationer hvor standard Basic til Uno typekonverteringsmekanismen er utilstrækkelig. Dette kan ske, når du forsøger at tilgå generiske Any-baserede grænseflader, såsom XPropertySet::setPropertyValue( Name, Value ) eller X???Container::insertBy???( ???, Value ), fra LibreOffice Basic. Basic kørselstidmodulet genkender ikke disse typer, da de kun er definerede i den tilsvarende service.

I denne situation vælger LibreOffice Basic den bedste matchende type for Basic-typen, som du vil konvertere. Hvis den forkerte type er valgt, opstår der dog en fejl. Brug funktionen CreateUnoValue() for at oprette en værdi for den ukendte Uno-type.

Du kan også bruge denne funktion til at overføre ikke-Any værdier, men dette er ikke anbefalet. Hvis Basic allerede kender måltypen, vil brugen af funktionen CreateUnoValue() kun føre til yderligere konverteringsoperationer, som gør udførelsen af Basic langsommere.