Contenuto

# Funzione CompatibilityMode()

La funzione CompatibilityMode() controlla o richiede informazioni sul modo in fase di esecuzione (runtime). Ha effetto su tutto il codice eseguito dopo l'impostazione o la reimpostazione del modo della fase di esecuzione.

Utilizzate questa funzione con cautela, limitatela, per esempio, alla conversione di documenti.

### Sintassi:

          CompatibilityMode(Optional Enable As Boolean) As Boolean

### Tipo di ritorno:

La funzione CompatibilityMode restituisce sempre il modo attivo dopo la sua esecuzione. Quindi, se chiamata con argomento, restituisce il nuovo modo; se chiamata senza argomento, restituisce il modo attivo senza modificarlo.

### Parametri:

Enable: attiva o disattiva il nuovo modo di compatibilità nel caso in cui l'argomento sia presente.

La funzione CompatibilityMode è collegata all'opzione VBASupport 1, che in tal caso restituisce sempre True. Non è invece collegata alla direttiva del compilatore Option Compatible.

Questa funzione può interessare o aiutare nelle situazioni sotto specificate:

- Ambito delle variabili

- Avvio del comando RmDir nel modo VBA. In VBA solo le directory vuote vengono rimosse da RmDir, mentre LibreOffice Basic le rimuove in modo ricorsivo.

- Cambio del comportamento Dir di Basic. Il flag di directory (16) per il comando Dir indica che vengono restituite solo directory in LibreOffice Basic, mentre in VBA vengono restituiti normali file e directory.

- Nel calcolo delle componenti dei colori le funzioni Red e Blue sono interscambiabili (La funzione Green non viene influenzata).

### Esempio:

Specificata una directory NON vuota in file:///home/me/Test

          Sub RemoveDir
              MsgBox CompatibilityMode() ' False

              CompatibilityMode( True )
              RmDir( "file:///home/me/Test" )
              CompatibilityMode False

              MsgBox CompatibilityMode ' False
          End Sub

Con CompatibilityMode( True ) il programma genera un errore, altrimenti la directory Test viene eliminata con il suo contenuto.

### Esempio:

Modifica del comportamento Dir

        Sub VBADirCommand
            CompatibilityMode( Enable := True ) ' Mostra anche file normali
            Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
            Total$ = ""
            While Entry$ <> ""
                Total$ = Total$ + Entry$ + Chr$(13)
                Entry$ = Dir
            Wend
            MsgBox Total$
            CompatibilityMode Enable := False ' Mostra solo le directory
        End Sub

Argomenti correlati

Istruzione Option Compatible

Istruzione Rem

Modifica di ambito delle variabili in Uso di procedure e funzioni con la funzione CompatibilityMode().

Istruzione Option Base

Istruzione Option Explicit

Istruzione Option VBASupport

Opzione ClassModule

Sostienici!