Функция 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
   

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