Помощ за LibreOffice 24.8
Функцията 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