Aide LibreOffice 7.4
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.
CompatibilityMode(Optional Enable As Boolean) As Boolean
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.
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).
É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.
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