Функция CompatibilityMode()

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

warning

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


Синтаксис:

CompatibilityMode(Optional Enable As Boolean) As Boolean

Резултат:

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

Параметри:

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

note

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


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

Пример:

Ако има НЕПРАЗНА директория с път 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

Моля, подкрепете ни!