Guida di Collabora Office 24.04
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.
CompatibilityMode(Optional Enable As Boolean) As Boolean
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.
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 Collabora Office 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 Collabora Office 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).
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.
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