Contenu
Index 🔎︎

# Fonction CompatibilityMode()

CompatibilityMode() function controls or queries runtime mode. It affects all code executed after setting or resetting the runtime mode.

Utilisez cette fonctionnalité avec prudence, limitez-la à la conversion de documents par exemple.

### Syntaxe :

          CompatibilityMode(Optional Enable As Boolean) As Boolean

### Valeur de retour :

CompatibilityMode function always returns the mode that is active after its execution. That is if called with argument, it returns the new mode, if called without argument, it returns active mode without modifying it.

### Paramètres :

Enable: Sets or unsets new compatibility mode when the argument is present.

CompatibilityMode function relates to Option VBASupport 1, in which case it always returns True. It is unrelated to Option Compatible compiler directive.

Cette fonction peut affecter ou aider dans les situations suivantes :

- Scoping of variables.

- Exécuter la commande RmDir en mode VBA. Dans VBA, seuls les répertoires vides sont supprimés par RmDir tandis que LibreOffice Basic supprime un répertoire de manière récursive.

- Modification du comportement de la commande Basic Dir. L'indicateur de répertoire (16) pour la commande Dir signifie que seuls les répertoires sont renvoyés dans LibreOffice Basic, alors que dans VBA les fichiers normaux et les répertoires sont renvoyés.

- Color components calculation with the Red and Blue functions which are interchanged (The Green function is not affected).

### Exemple :

Étant donné un répertoire NON vide dans file:///home/me/Test

          Sub RemoveDir
              MsgBox CompatibilityMode() ' False

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

              MsgBox CompatibilityMode ' False
          End Sub

With CompatibilityMode( True ) the program raises an error, otherwise the Test directory and all its content is deleted.

### Exemple :

Modification du comportement de Dir

        Sub VBADirCommand
            CompatibilityMode( Enable := True )   ' Shows also normal files
            Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
            Total$ = ""
            While Entry$ <> ""
                Total$ = Total$ + Entry$ + Chr$(13)
                Entry$ = Dir
            Wend
            MsgBox Total$
            CompatibilityMode Enable := False ' Shows only directories
        End Sub

Rubriques connexes

Instruction Option Compatible

Instruction Rem

Modification de la portée des variables dans Utilisation des Procédures et Fonctions avec la fonction CompatibilityMode().

Instruction Option Base

Instruction Option Explicit

Instruction Option VBASupport

Instruction Option ClassModule