Pomoc LibreOffice 24.8
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
Funkcja CompatibilityMode zawsze zwraca tryb, który jest aktywny po jej wykonaniu. To znaczy, jeśli wywołana z argumentem, zwraca nowy tryb; jeśli wywołana bez argumentu, zwraca aktywny tryb bez modyfikowania go.
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