Nápověda LibreOffice 7.6
Funkce CompatibilityMode() určuje či zjišťuje režim běhu programů. Ovlivňuje, jak se bude po nastavení nebo zrušení tohoto režimu vykonávat veškerý kód.
Používejte tuto funkci opatrně, například ji omezte na převody dokumentů.
CompatibilityMode(Optional Enable As Boolean) As Boolean
CompatibilityMode function always returns the mode that is active after its execution. That is, if called with an argument, it returns the new mode; if called without an argument, it returns the active mode without modifying it.
Enable: Je-li tento argument zadán, nastaví nebo zruší nastavení nového režimu kompatibility.
Funkce CompatibilityMode se vztahuje k možnosti Option VBASupport 1, pro kterou vždy vrátí True. Nesouvisí s direktivou kompilátoru Option Compatible.
Tato funkce může ovlivnit následující situace:
Viditelnost proměnných.
Spouštění příkazu RmDir v režimu VBA. V něm funkce RmDir odstraní pouze prázdné adresáře, zatímco LibreOffice Basic odstraní adresář rekurzivně.
Změna chování příkazu Basicu Dir. Příznak pro adresáře (16) u příkazu Dir znamená, že se v jazyku LibreOffice Basic vrátí pouze adresáře, kdežto v režimu VBA se vrátí adresáře i běžné soubory.
Výpočet složek barvy pomocí funkcí Red a Blue, které jsou odlišné. (Funkce Green není ovlivněna.)
Za předpokladu, že adresář file:///home/me/Test není prázdný
Sub RemoveDir
MsgBox CompatibilityMode() ' False
CompatibilityMode( True )
RmDir( "file:///home/me/Test" )
CompatibilityMode False
MsgBox CompatibilityMode ' False
End Sub
S CompatibilityMode(True) nastane v programu chyba, v opačném případě bude smazání adresář Test a veškerý jeho obsah.
Změna chování funkce Dir
Sub VBADirCommand
CompatibilityMode( Enable := True ) ' Zobrazí také běžné soubory
Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
Total$ = ""
While Entry$ <> ""
Total$ = Total$ + Entry$ + Chr$(13)
Entry$ = Dir
Wend
MsgBox Total$
CompatibilityMode Enable := False ' Zobrazí pouze adresáře
End Sub