Spis treści

# Funkcja CompatibilityMode()

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.

### Składnia:

          CompatibilityMode(Optional Enable As Boolean) As Boolean

### Typ zwracany:

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.

### Parametry:

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.)

### Przykład:

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.

### Przykład:

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

Tematy pokrewne

Instrukcja Option Compatible

Instrukcja Rem

Modyfikacja zakresu zmiennych w Używaniu procedur i funkcji za pomocą funkcji CompatibilityMode().

Instrukcja Option Base

Instrukcja Option Explicit

Instrukcja Option VBASupport

Instrukcja Option ClassModule

Prosimy o wsparcie!