LibreOfficeDev 24.2 Βοήθεια
Η συνάρτηση CompatibilityMode() ελέγχει ή ερωτά την κατάσταση χρόνου εκτέλεσης. Επηρεάζει όλο τον κώδικα που εκτελείται μετά τη ρύθμιση ή την επαναφορά της λειτουργίας χρόνου εκτέλεσης.
Χρησιμοποιήστε αυτό το γνώρισμα με προσοχή, περιορίστε το στη μετατροπή κειμένου, παραδείγματος χάρη.
CompatibilityMode(Προαιρετικό Enable As Boolean) As Boolean
CompatibilityMode function always returns the mode that is active after its execution. That is, if called with an argument, it returns the new mode; if called without an argument, it returns the active mode without modifying it.
Enable (Ενεργοποίηση): Ορίζει ή καταργεί τη νέα κατάσταση συμβατότητας όταν υπάρχει το όρισμα.
Η λειτουργία CompatibilityMode σχετίζεται με τη Επιλογή VBASupport 1, οπότε επιστρέφει πάντα True. Δεν σχετίζεται με την οδηγία μεταγλωττιστή Option Compatible.
Αυτή η συνάρτηση μπορεί να επηρεάσει ή να βοηθήσει στις παρακάτω καταστάσεις:
Εμβέλεια μεταβλητών.
Εκτέλεση εντολής RmDir σε κατάσταση VBA. Σε VBA αφαιρούνται μόνο κενοί κατάλογοι με RmDir ενώ η Basic του LibreOfficeDev αφαιρεί κατάλογο αναδρομικά.
Αλλαγή συμπεριφοράς της εντολής Basic Dir. Η σημαία καταλόγου (16) για την εντολή Dir σημαίνει ότι επιστρέφονται μόνο κατάλογοι στο LibreOfficeDev 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