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.

tip

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:

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")
  
tip

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!")
  
note

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


warning

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.


Bitte unterstützen Sie uns!