Inhalte
Index 🔎︎

# Dienst ScriptForge.Services

Der Hauptzweck des Moduls Services besteht darin, Zugriff auf die Methode CreateScriptService bereitzustellen, die in Benutzerskripten aufgerufen werden kann, um Dienste zu instanziieren, die mit dem Framework ScriptForge implementiert werden.

In der Terminologie von ScriptForge ist ein Dienst eine Sammlung von Methoden und Eigenschaften, die für einen gemeinsamen Zweck verwendet werden können. Beispielsweise bietet der Dienst String Methoden zum Bearbeiten von Zeichenfolgen, während der Dienst FileSystem die Bearbeitung von Dateien und Ordnern ermöglicht.

Das Modul Services der Bibliothek ScriptForge bietet zusätzliche Methoden, die entweder intern verwendet werden, um verfügbare Dienste zu registrieren, oder von Entwicklern, die ScriptForge erweitern möchten, indem sie neue Dienste erstellen. Die einzige Methode, die für Benutzerskripte relevant ist, ist CreateScriptService.

## CreateScriptService

Diese Methode wird verwendet, um einen Dienst ScriptForge zu instanziieren, damit er in Benutzerskripten aufgerufen werden kann.

Der zurückgegebene Wert ist ein Basic-Objekt oder Nothing, wenn ein Fehler aufgetreten ist.

### Syntax:

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

### Parameter:

service: Der Name des Dienstes, der als Zeichenfolge im Format "library.service" identifiziert wird:

- library ist eine Basic-Bibliothek, die in GlobalScope vorhanden sein muss. Der Standardwert ist "ScriptForge".

- service ist einer der von der Bibliothek ScriptForge registrierten Dienste.

arg0, …: Eine Liste von Argumenten, die vom aufgerufenen Dienst benötigt werden.

Wenn sich das erste Argument auf einen Ereignismanager bezieht, ist arg0 obligatorisch und muss das UNO-Objekt sein, welches das Ereignis darstellt, das als Argument für das Benutzermakro bereitgestellt wird.

### Beispiel:

##### In Basic

        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        ' Einmal auszuführen
        Dim svc As Object
        Set svc = CreateScriptService("Array")
        ' Bezieht sich auf den Dienst "ScriptForge.Array" oder "SF_Array"
        Set svc = CreateScriptService("ScriptForge.Dictionary")
        ' Gibt eine neue leere Klasseninstanz Dictionary zurück; "ScriptForge." ist optional
        Set svc = CreateScriptService("SFDocuments.Calc")
        ' Bezieht sich auf den Dienst "Calc", der in der zugehörigen Bibliothek "SFDocument" implementiert ist
        Set svc = CreateScriptService("Timer", True)
        ' Gibt eine Klasseninstanz "Timer" zurück, die sofort beginnt
        Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
        ' Bezieht sich auf den Dienst "DocumentEvent", der in der zugeordneten Bibliothek "SFDocument" implementiert ist
        ' Gibt die Instanz der Klasse "Document" zurück, die das Ereignis ausgelöst hat

##### In 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-Skripte unterstützen Schlüsselwortargumente beim Aufruf von CreateScriptService. Das folgende Beispiel veranschaulicht dieses Konzept, indem die Dienste Timer und Document mithilfe von Schlüsselwortargumenten instanziiert werden.

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

Um das Schreiben von Python-Skripten flüssiger zu gestalten, bietet ScriptForge den Dienst Basic, der es Python-Skripten ermöglicht, eine Sammlung von Methoden mit derselben Syntax und Bedeutung wie ihre gleichnamigen nativen Basic-Funktionen aufzurufen.

Das folgende Beispiel instanziiert den Dienst Basic und ruft die Methode MsgBox auf, die der in Basic verfügbaren Funktion MsgBox entspricht:

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

Beachten Sie, dass der Dienst Basic in Python-Skripten mit der Methode CreateScriptService instanziiert werden muss.

Alle ScriptForge Basic-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.

Verwandte Themen

Dienst ScriptForge.Basic

Anweisung Set

Bezeichner GlobalScope