Innhald

# 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.

Modulen Services i ScriptForge-biblioteket har tilleggsmetodar som vert brukte anten internt for å registrera tilgjengelege tenester eller av utviklarar som er interesserte i å utvida 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":

- library er eit Basic-bibliotek som må finnast i GlobalScope. Standardverdien er "ScriptForge".

- service er ei av dei tenestene som er registrert i ScriptForge-biblioteket.

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

For å gjera skriving af Python-skript meir flytande, leverer ScriptForge-tenesta Basic, som tillèt 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!")

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

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

Liknande emne

Tenesta ScriptForge.Basic

Set-uttrykket

GlobalScope-spesifikator