Aide LibreOffice 7.4
La fonction CompatibilityMode() contrôle ou interroge le mode d'exécution. Cela affecte tout le code exécuté après la définition ou la réinitialisation du mode d'exécution.
Utilisez cette fonctionnalité avec prudence, limitez-la à la conversion de documents par exemple.
CompatibilityMode(Optional Enable As Boolean) As Boolean
La fonction CompatibilityMode renvoie toujours le mode qui est actif après son exécution. C'est-à -dire que s'il est appelé avec argument, il renvoie le nouveau mode, s'il est appelé sans argument, il renvoie le mode actif sans le modifier.
Activer : active ou désactive le nouveau mode de compatibilité lorsque l'argument est présent.
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 :
Portée des 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).
É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
Avec CompatibilityMode( True ) le programme génère une erreur, sinon le répertoire Test et tout son contenu est supprimé.
Modification du comportement de Dir
Sub VBADirCommand
CompatibilityMode( Enable := True ) ' Affiche aussi les fichiers normaux
Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
Total$ = ""
While Entry$ <> ""
Total$ = Total$ + Entry$ + Chr$(13)
Entry$ = Dir
Wend
MsgBox Total$
CompatibilityMode Enable := False ' Affiche uniquement les répertoires
End Sub