Tenesta ScriptForge.Services

Hovudføremålet med modulen Services er å gje tilgang til metoden CreateScriptService, som kan kallast opp i brukarskript for å setja opp tenester som vert implementerte med ScriptForge-miljøet.

I ScriptForge-terminologien er ei teneste ei samling av metodar og eigenskapar som kan brukast til eit felles føremål. For eksempel har tenesta String metodar for å handsama strengar, medan tenesta FileSystem vert brukt for å handsama filer og mapper.

tip

Modulen Services i ScriptForge-biblioteket har tilleggsmetodar som vert brukte anten internt for å registrere tilgjengelege tenester eller av utviklarar som er interessert i å utvide ScriptForge ved å laga nye tenester. Den einaste metoden som er relevant for brukarskript er CreateScriptService.


CreateScriptService

Denne metoden vert brukt til å instansiere ei ScriptForge-teneste slik at ho kan kallast opp i brukarskript.

Den returnerte verdien er eit Basic-objekt, eller Nothing viss det skjedde ein feil.

Syntaks:

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

Parametrar:

service: Namnet på tenesta som vert identifisert som ein streng i formatet "library.service":

arg0, ...: Ei liste over argument som den oppkalla tenesta krev.

Viss det første argumentet viser til ei hendingshandsaming, er arg0 obligatorisk og må vera det UNO-objektet som representerer den hendinga som er gjeve som argument til brukarmakroen.

Eksempel:

I Basic

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    ' Skal gjerast éin gong
    Dim svc As Object
    Set svc = CreateScriptService("Array")
    ' Refererer til tenesta «ScriptForge.Array» eller SF_Array
    Set svc = CreateScriptService("ScriptForge.Dictionary")
    ' Returnerer ein ny tom klasseførekomst av ei ordbok; «ScriptForge.» er valfri
    Set svc = CreateScriptService("SFDocuments.Calc")
    ' Refererer til Calc-tenesta, implementert i det tilknytte SFDocuments-biblioteket
    Set svc = CreateScriptService("Timer", True)
    ' Returnerer ein klasseførekomst Timer, som startar med ein gong
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    ' Refererer til DocumentEvent implementert i det tilknytte SFDocuments-biblioteket
    ' Returnerer den førekomsten av klassen Document som utløyste hendinga
  
I 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-skript har støtte for nøkkelordargument når CreateScriptService vert kalla opp. Det følgjande eksempelet viser dette konseptet ved å instansiere tenesteneTimer og Document ved å bruka nøkkelordargument.


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

For å gjera skriving af Python-skript meir flytande, leverer ScriptForge-tenesta Basic, som tillet Python-skript å kalla opp ei samling av metodar med den same syntaksen og den same tydinga som funksjonane i Basic med det same namnet.


Eksempelet nedanfor set opp tenesta Basic og kallar opp metoden MsgBox som den same som funksjonen MsgBox i Basic:


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

Hugs at tenesta Basic må setjast opp i Python-skripta med metoden CreateScriptService.


warning

Alle ScriptForge Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.


Støtt oss!