Servizio ScriptForge.Services

Lo scopo principale del modulo Services è quello di fornire l'accesso al metodo CreateScriptService, che può essere chiamato negli script dell'utente per istanziare servizi implementati usando il framework ScriptForge.

Nella terminologia di ScriptForge un servizio è una raccolta di metodi e proprietà utilizzabili per una finalità comune. Per esempio, il servizio String fornisce metodi per la manipolazione della stringhe, mentre il servizio FileSystem consente la manipolazione di file e cartelle.

tip

Il modulo Services della libreria ScriptForge fornisce metodi aggiuntivi da usare sia internamente, per registrare i servizi disponibili, o dagli sviluppatori interessati a estendere ScriptForge creando nuovi servizi. L'unico metodo rilevante per gli script degli utenti è CreateScriptService.


CreateScriptService

Questo metodo istanzia un servizio ScriptForge in modo da poterlo richiamare negli script utente.

Il valore restituito è un oggetto Basic, o Nothing se si verifica un errore.

Sintassi:

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

Parametri:

service: il nome del servizio identificato da un stringa nel formato "libreria.servizio":

arg0, ...: l'elenco di argomenti richiesti dal servizio invocato.

Se il primo argomento si riferisce ad un gestore di eventi, l'arg0 è obbligatorio e deve essere un oggetto UNO che rappresenta l'evento passato come argomento alla macro dell'utente.

Esempio:

In Basic

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    'Da eseguire una volta
    Dim svc As Object
    Set svc = CreateScriptService("Array")
    'Fa riferimento al servizio "ScriptForge.Array" o SF_Array
    Set svc = CreateScriptService("ScriptForge.Dictionary")
    'Restituisce una nuova istanza alla classe di un nuovo dizionario vuoto; "ScriptForge." è opzionale
    Set svc = CreateScriptService("SFDocuments.Calc")
    'Fa riferimento al servizio Calc, implementato nella libreria associata SFDocuments
    Set svc = CreateScriptService("Timer", True)
    'Restituisce un'istanza della classe Timer che si avvia immediatamente
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    'Fa riferimento al servizio DocumentEvent implementato nella libreria associata SFDocuments
    'Restituisce un'istanza della classe Document che ha innescato l'evento
  
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)
  

Gli script in Python supportano argomenti con parole chiave per richiamare CreateScriptService. L'esempio seguente illustra questo concetto istanziando i servizi Timer e Document usando degli argomenti con parole chiave.


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

Per rendere più fluida la scrittura di script in Python, ScriptForge mette a disposizione il servizio Basic che permette agli script in Python di richiamare una raccolta di metodi con la stessa sintassi e lo stesso significato delle loro omonime funzioni native di Basic.


L'esempio seguente istanzia il servizio Basic e richiama il metodo MsgBox, equivalente alla funzione MsgBox disponibile in Basic:


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

È bene notare che il servizio Basic deve essere istanziato dagli script in Python usando il metodo CreateScriptService.


warning

Tutte le routine e gli identificatori Basic di ScriptForge che iniziano con un carattere di sottolineatura "_" sono riservati per uso interno. Non è previsto il loro utilizzo nelle macro in Basic o negli script in Python.


Sosteneteci!