Функція CreateUnoValue

Повертає об'єкт, який є значенням зі строгим типом і посилається на систему типу Uno.

При передаванні до Uno цей об'єкт автоматично перетворюється на значення Any відповідного типу. Тип має бути заданий повною назвою типу Uno.

Піктограма Примітка

Інтерфейс API LibreOffice часто використовує тип Any. Цей тип відповідає типу Variant в інших середовищах. Тип Any зберігає один довільний тип Uno і використовується у спільних інтерфейсах Uno.


Синтаксис:

oUnoValue = CreateUnoValue( "[]byte", ЗначенняBasic ) 'для отримання послідовності байтів.

Якщо неможливо перетворити CreateUnoValue на вказаний тип Uno, то виникає помилка. Для перетворення використовується служба TypeConverter.

Ця функція використовується в ситуаціях, коли використання стандартного механізму перетворення типів з Basic у Uno недостатнє. Це може відбутися при отриманні доступу до загальних інтерфейсів на основі типу Any, наприклад, XPropertySet::setPropertyValue( Name, Value ) або X???Container::insertBy???(???, Value ), з LibreOffice Basic. Середовище виконання Basic не вміє розпізнавати ці типи, бо вони визначаються лише у відповідних службах.

У такій ситуації LibreOffice Basic вибирає найвідповідніший тип для типу Basic, який потрібно перетворити. Однак при виборі неправильного типу виникає помилка. Функція CreateUnoValue() служить для створення значення для невідомого типу Uno.

Цю функцію можна також використовувати для передачі значень, відмінних від Any, однак робити це не рекомендується. Якщо Basic відомий кінцевий тип, то використання функції CreateUnoValue() призведе до додаткового перетворення і до уповільнення виконання програми на Basic.