Pomoc LibreOffice 7.5
Funkcja CompatibilityMode() określa lub wykrywa tryb działania programów. Wpływa na sposób wykonywania całego kodu po ustawieniu lub wyłączeniu tego trybu.
Korzystaj z tej funkcji ostrożnie, ogranicz ją np. do konwersji dokumentów.
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: Ustawia lub usuwa nowy tryb zgodności, gdy argument jest obecny.
Funkcja CompatibilityMode odnosi się do Option VBASupport 1, w takim przypadku zawsze zwraca True. Nie jest powiązana z dyrektywą kompilatora Option Compatible.
Ta funkcja może mieć wpływ na następujące sytuacje:
Zakres zmiennych.
Uruchamianie komendy RmDir w trybie VBA. W VBA tylko puste katalogi są usuwane przez RmDir, podczas gdy LibreOffice Basic usuwa katalog rekurencyjnie.
Zmiana zachowania polecenia Basic Dir. Flaga katalogu (16) dla polecenia Dir oznacza, że w LibreOffice Basic zwracane są tylko katalogi, podczas gdy w VBA zwracane są normalne pliki i katalogi.
Obliczanie składowych koloru za pomocą funkcji Red i Blue, które są różne (Funkcja Green nie ma wpływu.)
Zakładając, że katalog file:///home/me/Test NIE jest pusty
Sub RemoveDir
MsgBox CompatibilityMode() ' False
CompatibilityMode( True )
RmDir( "file:///home/me/Test" )
CompatibilityMode False
MsgBox CompatibilityMode ' False
End Sub
W przypadku CompatibilityMode( True ) program zgłasza błąd, w przeciwnym razie katalog Test i cała jego zawartość zostaną usunięte.
Modyfikowanie zachowania Dir
Sub VBADirCommand
CompatibilityMode( Enable := True ) ' Pokazuje również normalne pliki
Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
Total$ = ""
While Entry$ <> ""
Total$ = Total$ + Entry$ + Chr$(13)
Entry$ = Dir
Wend
MsgBox Total$
CompatibilityMode Enable := False ' Pokazuje tylko katalogi
End Sub