Съдържание

# Функция CompatibilityMode()

Функцията CompatibilityMode() управлява или запитва за режима на изпълнение. Тя влияе върху всичкия код, който се изпълнява след задаване или възстановяване режима на изпълнение.

Използвайте тази възможност внимателно, ограничавайки я например до конвертиране на документи.

### Синтаксис:

          CompatibilityMode(Optional Enable As Boolean) As Boolean

### Резултат:

Функцията CompatibilityMode винаги връща режима, който е активен след изпълнението ѝ. Това значи, че ако е извикана с аргумент, връща новия режим, а ако е извикана без аргумент, връща активния режим, без да го сменя.

### Параметри:

Enable: задава или отменя режим на съвместимост, когато аргументът присъства.

Функцията CompatibilityMode е свързана с Option VBASupport 1 и в този случай винаги връща True. Тя не е свързана с директивата на компилатора Option Compatible.

Тази функция може да повлияе или да помогне в следните ситуации:

- Определяне обхвата на променливите.

- Изпълнение на командата RmDir в режим VBA. Във VBA RmDir премахва само празни директории, докато LibreOffice Basic премахва директориите рекурсивно.

- Промяна на поведението на командата Dir на Basic. В LibreOffice Basic флагът за директория (16) на командата Dir означава връщане само на директориите, докато във VBA се връщат обикновените файлове и директориите.

- Изчисляване на цветови компоненти с функциите Red и Blue, които са разменени (Функцията Green не е засегната).

### Пример:

Ако има НЕПРАЗНА директория с път file:///home/me/Test

          Sub RemoveDir
              MsgBox CompatibilityMode() ' False

              CompatibilityMode( True )
              RmDir( "file:///home/me/Test" )
              CompatibilityMode False

              MsgBox CompatibilityMode ' False
          End Sub

С CompatibilityMode(True) изпълнението на програмата ще предизвика грешка, а без него директорията Test ще бъде изтрита заедно с цялото си съдържание.

### Пример:

Промяна на поведението на Dir

        Sub VBADirCommand
            CompatibilityMode( Enable := True )   ' Показва и обикновените файлове
            Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
            Total$ = ""
            While Entry$ <> ""
                Total$ = Total$ + Entry$ + Chr$(13)
                Entry$ = Dir
            Wend
            MsgBox Total$
            CompatibilityMode Enable := False ' Показва само директориите
        End Sub

Теми, свързани с показаната

Оператор Option Compatible

Оператор Rem

Промяна на областта на видимост на променливи в Използване на процедури и функции с функцията CompatibilityMode().

Оператор Option Base

Оператор Option Explicit

Оператор Option VBASupport

Оператор Option ClassModule