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:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) per ottenere una sequenza di byte.

Se CreateUnoValue non può essere convertito nel tipo Uno specificato, si verifica un errore. Per la conversione viene utilizzato il servizio com.sun.star.script.Converter.

Questa funzione è stata studiata per essere usata nelle situazioni in cui il meccanismo predefinito per la conversione dei tipi da Basic a Uno è insufficiente. Questo può accadere quando si cerca di accedere a un'interfaccia Any generica, ad esempio XPropertySet::setPropertyValue( Nome, Valore ) o X???Container::insertBy???( ???, Valore ), da LibreOffice Basic. Il runtime Basic non riconosce questi tipi, perché vengono definiti solo nel servizio corrispondente.

Nelle situazioni di questo tipo, LibreOffice Basic sceglie il tipo più adatto al tipo Basic da convertire. Se tuttavia viene scelto il tipo sbagliato, si verifica un errore. Utilizzate la funzione CreateUnoValue() per creare un valore per il tipo Uno sconosciuto.

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.