Περιεχόμενα
Δείκτης 🔎︎

# Υπηρεσία ScriptForge.Services

Ο κύριος σκοπός της ενότητας Services (Υπηρεσίες) είναι να παρέχει πρόσβαση στη μέθοδο CreateScriptService, η οποία μπορεί να κληθεί σε σενάρια χρήστη για να δημιουργήσει υπηρεσίες που υλοποιούνται χρησιμοποιώντας το πλαίσιο ScriptForge.

Στην ορολογία ScriptForge μια υπηρεσία είναι μια συλλογή μεθόδων και ιδιοτήτων που μπορούν να χρησιμοποιηθούν για έναν κοινό σκοπό. Για παράδειγμα, η υπηρεσία String παρέχει μεθόδους χειρισμού συμβολοσειρών, ενώ η υπηρεσία FileSystem επιτρέπει τον χειρισμό αρχείων και φακέλων.

Η ενότητα Services (Υπηρεσίες) της βιβλιοθήκης ScriptForge παρέχει πρόσθετες μεθόδους που χρησιμοποιούνται είτε εσωτερικά για την εγγραφή των διαθέσιμων υπηρεσιών, είτε από προγραμματιστές που ενδιαφέρονται να επεκτείνουν το ScriptForge δημιουργώντας νέες υπηρεσίες. Η μόνη μέθοδος που είναι σχετική με τα σενάρια χρήστη είναι η CreateScriptService.

## CreateScriptService

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

Η επιστρεφόμενη τιμή είναι ένα αντικείμενο Basic ή Nothing (Τίποτα) εάν προέκυψε σφάλμα.

### Σύνταξη:

svc.CreateScriptService(service: str, [arg0: any] ...): svc

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

service (υπηρεσία): Το όνομα της υπηρεσίας που προσδιορίζεται ως συμβολοσειρά στη μορφή "library.service":

- Η library (βιβλιοθήκη) είναι μια βιβλιοθήκη Basic που πρέπει να υπάρχει στο GlobalScope. Η προεπιλεγμένη τιμή είναι "ScriptForge".

- Η service (υπηρεσία) είναι μία από τις υπηρεσίες που έχουν καταχωρηθεί από τη βιβλιοθήκη ScriptForge.

arg0, ...: Ένας κατάλογος ορισμάτων που απαιτούνται από την υπηρεσία που καλείται.

Εάν το πρώτο όρισμα αναφέρεται σε έναν διαχειριστή συμβάντων, τότε το arg0 είναι υποχρεωτικό και πρέπει να είναι το αντικείμενο UNO που αντιπροσωπεύει το συμβάν που παρέχεται ως όρισμα στη μακροεντολή χρήστη.

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

##### Σε Basic

        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        ' Να εκτελεστεί μια φορά
        Dim svc As Object
        Set svc = CreateScriptService("Array")
        ' Αναφέρεται στην υπηρεσία "ScriptForge.Array" ή SF_Array
        Set svc = CreateScriptService("ScriptForge.Dictionary")
        ' Επιστρέφει μια νέα κενή παρουσία κλάσης λεξικού. Το "ScriptForge." είναι προαιρετικό
        Set svc = CreateScriptService("SFDocuments.Calc")
        ' Αναφέρεται στην υπηρεσία Calc, που υλοποιείται στη σχετική βιβλιοθήκη SFDocuments
        Set svc = CreateScriptService("Timer", True)
        ' Επιστρέφει μια παρουσία κλάσης Timer που ξεκινά αμέσως
        Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
        ' Αναφέρεται στην υπηρεσία DocumentEvent που υλοποιείται στη σχετική βιβλιοθήκη SFDocuments
        ' Επιστρέφει την παρουσία της κλάσης Document που πυροδότησε το συμβάν

##### Σε Python

        from scriptforge import CreateScriptService
        svc = CreateScriptService("Array")
        svc = CreateScriptService("ScriptForge.Dictionary")
        svc = CreateScriptService("SFDocuments.Calc")
        svc = CreateScriptService("Timer", True)
        svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)

Τα σενάρια Python υποστηρίζουν ορίσματα λέξεων-κλειδιών κατά την κλήση του CreateScriptService. Το παρακάτω παράδειγμα επεξηγεί αυτήν την έννοια, δημιουργώντας τις υπηρεσίες Timer και Document χρησιμοποιώντας ορίσματα λέξεων-κλειδιών.

        from scriptforge import CreateScriptService
        # Timer
        my_timer = CreateScriptService("Timer", start = True)
        # Document
        my_doc = CreateScriptService("Document", windowname = "some_file.ods")

Για να κάνει τη σύνταξη σεναρίων Python πιο προσαρμόσιμη, το ScriptForge παρέχει την υπηρεσία Basic που επιτρέπει στα σενάρια Python να καλούν μια συλλογή μεθόδων με την ίδια σύνταξη και νόημα με τις ομώνυμες εγγενείς συναρτήσεις τους της Basic.

Το παρακάτω παράδειγμα δημιουργεί την υπηρεσία Basic και καλεί τη μέθοδο MsgBox, η οποία είναι ισοδύναμη με τη συνάρτηση MsgBox που είναι διαθέσιμη στη Basic:

        from scriptforge import CreateScriptService
        bas = CreateScriptService("Basic")
        bas.MsgBox("Hello World!")

Be aware that the Basic service has to be instantiated in Python scripts using the CreateScriptService method.

Όλες οι ρουτίνες ή αναγνωριστικά του ScriptForge στη Basic που έχουν το πρόθεμα χαρακτήρα υπογράμμισης "_" δεσμεύονται για εσωτερική χρήση. Δεν προορίζονται να χρησιμοποιηθούν σε μακροεντολές Basic ή σενάρια Python.

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

Υπηρεσία ScriptForge.Basic

Δήλωση Set

Προσδιοριστής GlobalScope