Service ScriptForge.Services

Het belangrijkste doel van de module Services is om toegang te bieden tot de methode CreateScriptService, die kan worden aangeroepen in gebruikersscripts om services te instantiëren die zijn geïmplementeerd met behulp van het ScriptForge-framework.

In ScriptForge-terminologie is een service een verzameling methoden en eigenschappen die voor een gemeenschappelijk doel kunnen worden gebruikt. De service String biedt bijvoorbeeld methoden voor het manipuleren van strings, terwijl de service FileSystem de manipulatie van bestanden en mappen toestaat.

tip

De module Services van de ScriptForge-bibliotheek biedt aanvullende methoden die intern worden gebruikt om beschikbare services te registreren of door ontwikkelaars die geïnteresseerd zijn in het uitbreiden van ScriptForge door nieuwe services te creëren. De enige methode die relevant is voor gebruikersscripts is CreateScriptService.


CreateScriptService

Deze methode wordt gebruikt om een ScriptForge-service te instantiëren, zodat deze in gebruikersscripts kan worden aangeroepen.

De geretourneerde waarde is een Basic-object of Nothing als er een fout is opgetreden.

Syntaxis:

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

Parameters:

service: De naam van de service geïdentificeerd als een tekenreeks in de indeling "library.service":

arg0, ...: Een lijst met argumenten die vereist zijn door de aangeroepen service.

Als het eerste argument verwijst naar een gebeurtenismanager, dan is arg0 verplicht en moet het het UNO-object zijn dat de gebeurtenis vertegenwoordigt die als argument voor de gebruikersmacro is opgegeven.

Voorbeeld:

In BASIC

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    ' Eenmaal uitvoeren
    Dim svc As Object
    Set svc = CreateScriptService("Array")
    ' Verwijst naar de service "ScriptForge.Array" of SF_Array
    Set svc = CreateScriptService("ScriptForge.Dictionary")
    ' Retourneert een nieuwe lege instantie van de woordenboekklasse; "ScriptForge." is optioneel
    Set svc = CreateScriptService("SFDocuments.Calc")
    'Verwijst naar de Calc-service, geïmplementeerd in de bijbehorende SFDocuments-bibliotheek
    Set svc = CreateScriptService("Timer", True)
    ' Retourneert een instantie van een Timer-klasse die onmiddellijk begint
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    'Verwijst naar de DocumentEvent-service die is geïmplementeerd in de bijbehorende SFDocuments-bibliotheek
    'Retourneert de instantie van de Document-klasse die de gebeurtenis heeft geactiveerd
  
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-scripts ondersteunen trefwoordargumenten bij het aanroepen van CreateScriptService. Het volgende voorbeeld illustreert dit concept door de services Timer en Document te instantiëren met behulp van trefwoordargumenten.


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

Om het schrijven van Python-scripts vloeiender te maken, biedt ScriptForge de service Basic, waarmee Python-scripts een verzameling methoden kunnen aanroepen met dezelfde syntaxis en betekenis als hun gelijknamige native Basic-functies.


In het volgende voorbeeld wordt de service Basic geïnstantieerd en wordt de methode MsgBox aangeroepen, wat gelijk is aan de functie MsgBox die beschikbaar is in Basic:


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

Houd er rekening mee dat de Basic-service moet worden geïnstantieerd in Python-scripts met behulp van de CreateScriptService-methode.


warning

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.


Help ons, alstublieft!