Spis treści

# Usługa ScriptForge.Services

Głównym celem modułu Services jest zapewnienie dostępu do metody CreateScriptService, którą można wywołać w skryptach użytkownika w celu utworzenia instancji usług zaimplementowanych przy użyciu frameworka ScriptForge.

W terminologii ScriptForge usługa to zbiór metod i właściwości, które można wykorzystać do wspólnego celu. Na przykład usługa String udostępnia metody manipulowania ciągami znaków, podczas gdy usługa FileSystem umożliwia manipulowanie plikami i folderami.

Moduł Services biblioteki ScriptForge udostępnia dodatkowe metody, które są używane wewnętrznie do rejestrowania dostępnych usług lub przez programistów zainteresowanych rozszerzaniem ScriptForge poprzez tworzenie nowych usług. Jedyną metodą odpowiednią dla skryptów użytkownika jest CreateScriptService.

## CreateScriptService

Ta metoda służy do tworzenia instancji usługi ScriptForge, aby można ją było wywoływać w skryptach użytkownika.

Zwrócona wartość to obiekt podstawowy lub Nothing, jeśli wystąpił błąd.

### Składnia:

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

### Parametry:

service: nazwa usługi identyfikowana jako ciąg znaków w formacie "library.service":

- library to biblioteka Basic, która musi istnieć w GlobalScope. Wartość domyślna to "ScriptForge".

- service jest jedną z usług zarejestrowanych przez bibliotekę ScriptForge.

arg0, ...: lista argumentów wymaganych przez wywoływaną usługę.

Jeśli pierwszy argument odnosi się do menedżera zdarzeń, wówczas arg0 jest obowiązkowy i musi być obiektem UNO reprezentującym zdarzenie podane jako argument makra użytkownika.

### Przykład:

##### W języku Basic

        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        ' Wystarczy wykonać raz
        Dim svc As Object
        Set svc = CreateScriptService("Array")
        ' Odnosi się do usługi "ScriptForge.Array" lub SF_Array
        Set svc = CreateScriptService("ScriptForge.Dictionary")
        ' Zwraca nową, pustą instancję klasy słownika; część "ScriptForge." jest opcjonalna
        Set svc = CreateScriptService("SFDocuments.Calc")
        ' Odnosi się do usługi Calc, zaimplementowanej w powiązanej bibliotece SFDocuments
        Set svc = CreateScriptService("Timer", True)
        ' Zwraca instancję klasy Timer, która rozpoczyna się natychmiast
        Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
        ' Odnosi się do usługi DocumentEvent zaimplementowanej w powiązanej bibliotece SFDocuments
        ' Zwraca instancję klasy Document, która uruchomiła zdarzenie

##### W języku 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)

Skrypty Pythona obsługują argumenty słów kluczowych podczas wywoływania CreateScriptService. Poniższy przykład ilustruje tę koncepcję poprzez utworzenie instancji usług Timer i Document przy użyciu argumentów słów kluczowych.

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

Aby pisanie skryptów w Pythonie było bardziej płynne, ScriptForge udostępnia usługę Basic, która pozwala skryptom Pythona wywoływać zbiór metod o tej samej składni i znaczeniu, co ich homonimiczne natywne funkcje Basic.

Poniższy przykład tworzy instancję usługi Basic i wywołuje metodę MsgBox, która jest odpowiednikiem funkcji MsgBox dostępnej w Basic:

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

Należy pamiętać, że instancja usługi Basic musi zostać utworzona w skryptach Pythona przy użyciu metody CreateScriptService.

Wszystkie podstawowe procedury lub identyfikatory ScriptForge poprzedzone znakiem podkreślenia „_” są zarezerwowane do użytku wewnętrznego. Nie należy ich używać w makrach Basic ani skryptach Pythona.

Tematy pokrewne

Usługa ScriptForge.Basic

Instrukcja Set

Specyfikator GlobalScope