Помощ за Collabora Office 24.04
Връща обект, който представлява стойност със строг тип, базиран на системата от типове на Uno.
Този обект се преобразува автоматично към тип Any от съответния тип, когато се предава към Uno. Типът трябва да бъде зададен като напълно квалифицирано име на тип на Uno.
Типът Any се използва често в програмния интерфейс Collabora Office API. Той съответства на типа Variant, използван в други среди за програмиране. Променливите от тип Any могат съдържат произволен тип на Uno и се използват в общите интерфейси на Uno.
CreateUnoValue(Type As String, Value As Object) As Object
Object
Type: напълно квалифицираното име на тип на Uno. Поддържаните типове данни са void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type и any. В имената малките и главните букви се различават, а пред тях може да се поставят квадратни скоби, за да се укаже масив.
Value: стойност със строг тип.
byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))
Ако CreateUnoValue не може да преобразува стойността към зададения тип на Uno, възниква грешка. За преобразуване се използва услугата com.sun.star.script.Converter.
Тази функция е предназначена за случаи, в които подразбираният механизъм за преобразуване на типове от Basic към Uno е недостатъчен. Така е при извикване на общи методи на API, базирани на Any, например com.sun.star.beans.XPropertySet.setPropertyValue() или com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() задава обект стойност за неизвестния тип на Uno.
В този пример е използван методът com.sun.star.beans.XPropertySet.addProperty(), за да се създаде свойство на документ, чиито подразбирани стойности изискват употреба на CreateUnoValue():
With ThisComponent.DocumentProperties.getUserDefinedProperties()
.addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
End With
Можете да използвате тази функция и за предаване на стойности не от тип Any, но това не се препоръчва. Ако Basic познава целевия тип, използването на CreateUnoValue() ще доведе до излишни преобразувания, които само ще забавят изпълнението на кода на Basic.