Funkcja CompatibilityMode

Spis treści
Indeks 🔎︎

# 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

### Zwracana wartość:

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.

### 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