Συνάρτηση CompatibilityMode

Περιεχόμενα

# Συνάρτηση CompatibilityMode()

Η συνάρτηση CompatibilityMode() ελέγχει ή ερωτά την κατάσταση χρόνου εκτέλεσης. Επηρεάζει όλο τον κώδικα που εκτελείται μετά τη ρύθμιση ή την επαναφορά της λειτουργίας χρόνου εκτέλεσης.

Χρησιμοποιήστε αυτό το γνώρισμα με προσοχή, περιορίστε το στη μετατροπή κειμένου, παραδείγματος χάρη.

### Σύνταξη:

          CompatibilityMode(Προαιρετικό Enable As Boolean) As Boolean

### Return type:

Η συνάρτηση CompatibilityMode επιστρέφει πάντα τη λειτουργία που είναι ενεργή μετά την εκτέλεσή της. Δηλαδή, εάν καλείται με όρισμα, επιστρέφει τη νέα λειτουργία. Εάν καλείται χωρίς όρισμα, επιστρέφει την ενεργή λειτουργία χωρίς να την τροποποιήσει.

### Παράμετροι:

Enable (Ενεργοποίηση): Ορίζει ή καταργεί τη νέα κατάσταση συμβατότητας όταν υπάρχει το όρισμα.

Η λειτουργία CompatibilityMode σχετίζεται με τη Επιλογή VBASupport 1, οπότε επιστρέφει πάντα True. Δεν σχετίζεται με την οδηγία μεταγλωττιστή Option Compatible.

Αυτή η συνάρτηση μπορεί να επηρεάσει ή να βοηθήσει στις παρακάτω καταστάσεις:

- Εμβέλεια μεταβλητών.

- Εκτέλεση εντολής RmDir σε κατάσταση VBA. Σε VBA αφαιρούνται μόνο κενοί κατάλογοι με RmDir ενώ η Basic του LibreOffice αφαιρεί κατάλογο αναδρομικά.

- Αλλαγή συμπεριφοράς της εντολής Basic Dir. Η σημαία καταλόγου (16) για την εντολή Dir σημαίνει ότι επιστρέφονται μόνο κατάλογοι στο LibreOffice Basic, ενώ επιστρέφονται στη VBA κανονικά αρχεία και κατάλογοι.

- Υπολογισμός στοιχείων χρώματος με τις συναρτήσεις Red (Κόκκινο) και Blue (Γαλάζιο) που ανταλλάσσονται (Η συνάρτηση Green (Πράσινο) δεν επηρεάζεται).

### Παράδειγμα:

Με δεδομένο κενό κατάλογο NOT στο 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

Σχετικά θέματα

Πρόταση συμβατής επιλογής

Πρόταση Rem

Τροποποίηση της περιοχής μεταβλητών στο Χρήση διαδικασιών και συναρτήσεων με τη συνάρτηση CompatibilityMode().

Πρόταση Option Base

Πρόταση Option Explicit

Πρόταση Option VBASupport

Πρόταση επιλογής ClassModule