CompatibilityMode() function controls or queries runtime mode. It affects all code executed after setting or resetting the runtime mode.
Use this feature with caution, limit it to document conversion for example.
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.
This function may affect or help in the following situations:
Scoping of variables.
Running RmDir command in VBA mode. In VBA only empty directories are removed by RmDir while LibreOffice Basic removes a directory recursively.
Changing behaviour of Basic Dir command. The directory flag (16) for the Dir command means that only directories are returned in LibreOffice Basic, while in VBA normal files and directories are returned.
Given a NOT empty directory at file:///home/me/Test
MsgBox CompatibilityMode() ' FalseCompatibilityMode( True ) RmDir( "file:///home/me/Test" ) CompatibilityMode False
MsgBox CompatibilityMode ' FalseEnd Sub
With CompatibilityMode( True ) the program raises an error, otherwise the Test directory and all its content is deleted.
Modifying Dir behaviour
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