CreateUnoValue Function

傳回表示參照 Uno 類型系統精確定型的值的物件。

該物件被傳送到 Uno 時,將自動轉換成相應的 Any 類型,此類型必須由完全合格的 Uno 類型名稱來指定。

評註圖示

LibreOffice API 經常使用 Any 類型。它與其他環境中的變體型相對應。Any 類型具有一個任意的 Uno 類型,並用於通用的 Uno 介面中。


語法:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' to get a byte sequence.

如果無法將 CreateUnoValue 轉換為指定的 Uno 類型,將發生錯誤。轉換時使用 TypeConverter 服務。

此函式適用於 Basic 到 Uno 類型的標準轉換機制無法滿足要求的場合。當試圖從 LibreOffice Basic 存取基於通用的 Any 類型的介面,例如 XPropertySet::setPropertyValue (Name, Value ) 或 X???Container::insertBy??? (???, Value) 時,可能出現此種情形。由於這些類型僅在相應的服務中進行了定義,因此 Basic 執行階段不能識別這些類型。

在這種情形下,LibreOffice Basic 會為要轉換的 Basic 類型選擇最佳的相符類型。但是如果選取了錯誤的類型,就會發生錯誤。您可以使用 CreateUnoValue() 函式為不明的 Uno 類型建立一個值。

此外,還可以使用此函式來傳送非 Any 數值,但是不建議您這樣做。如果 Basic 知道目標類型,則使用 CreateUnoValue() 函式只會導致額外的轉換作業,從而降低 Basic 的執行速度。