Contenuto
Indice 🔎︎

# Funzione CreateUnoValue

Restituisce un oggetto che rappresenta un valore fortemente tipizzato con riferimento al sistema di tipi Uno.

Questo oggetto viene automaticamente convertito in un Any di tipo corrispondente quando viene passato a Uno. Il tipo deve essere specificato con il nome pienamente qualificato del tipo Uno.

La API di LibreOffice utilizza spesso il tipo Any. Si tratta della controparte del tipo Variant utilizzato in altri ambienti. Il tipo Any contiene un solo tipo Uno arbitrario e viene usato nelle interfacce Uno generiche.

### Sintassi:

      CreateUnoValue(Type As String, Value As Object) As Object

### Valore restituito:

Oggetto

### Parametri:

Type: il nome qualificato completo di un tipo Uno. I tipi di dati supportati sono void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type, e any. I nomi fanno distinzione tra minuscole e maiuscole e possono essere preceduti da parentesi quadre per indicare una matrice.

Value: un valore inserito esattamente.

       byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))

### Codici di errore:

Se CreateUnoValue non può convertire il valore nel tipo Uno specificato, si verifica un errore. Il servizio com.sun.star.script.Converter è responsabile della conversione.

### Esempio:

Questa funzione è pensata per essere usata in situazioni nelle quali il meccanismo della conversione tra tipi Uno di Basic, che è quella predefinita, non è sufficiente. Questo accade chiamando dei metodi generici delle API basati su Any, come com.sun.star.beans.XPropertySet.setPropertyValue() o com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() imposta il valore di un oggetto per il tipo Uno sconosciuto.

Questo esempio usa il metodo com.sun.star.beans.XPropertySet.addProperty() per creare la proprietà di un documento il cui valore predefinito richiede l'uso di CreateUnoValue():

      With ThisComponent.DocumentProperties.getUserDefinedProperties()
          .addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
      End With

Questa funzione può anche essere usata per passare valori non-Any, ma questo metodo è sconsigliato. Se Basic conosce già il tipo di destinazione, l'uso della funzione CreateUnoValue() determina solo operazioni di conversione aggiuntive che rallentano l'esecuzione Basic.