Služba ScriptForge.Services

Hlavním účelem modulu Service je poskytovat přístup k metodě CreateScriptService, pomocí které lze v uživatelských skriptech vytvářet instance služeb implementovaných v knihovnách ScriptForge.

V terminologii knihoven ScriptForge je služba sada metod a vlastností, které lze použít ke společnému účelu. Například služba String nabízí metody pro manipulaci s řetězci, zatímco služba FileSystem umožňuje zacházet se soubory a složkami.

tip

Modul Service knihovny ScriptForge obsahuje další metody, které jsou používány buď interně pro registraci dostupných služeb, nebo vývojáři, kteří chtějí ScriptForge rozšířit o nové služby. Jedinou metodou, která je relevantní pro uživatelské skripty, je CreateScriptService.


CreateScriptService

Tato metoda se používá k vytvoření instance služby ScriptForge, která díky ní může být provedena v uživatelských skriptech.

Návratovou hodnotou je objekt Basicu nebo objekt Nothing, pokud nastane chyba.

Syntaxe:

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

Parametry:

service: Název služby jako řetězec ve formátu "knihovna.služba":

arg0, ...: Seznam argumentů vyžadovaných vytvářenou službou.

Pokud první argument odkazuje na správce událostí, poté je arg0 povinný a musí se jednat o objekt UNO představující událost, která byla předána jako argument uživatelskému makru.

Příklad:

V Basicu

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    ' Stačí provést jednou
    Dim svc As Object
    Set svc = CreateScriptService("Array")
    ' Odkazuje na službu "ScriptForgeArray" či SF_Array
    Set svc = CreateScriptService("ScriptForge.Dictionary")
    ' Vrátí novou, prázdnou instanci třídy slovník; část "ScriptForge." je nepovinná
    Set svc = CreateScriptService("SFDocuments.Calc")
    ' Odkazuje na službu Calc, implementovanou v připojené knihovně SFDocuments
    Set svc = CreateScriptService("Timer", True)
    ' Vrátí instanci třídy Timer, která se okamžitě spustí
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    ' Odkazuje na službu DocumentEvent, implementovanou v připojené knihovně SFDocuments
    ' Vrátí instanci třídy dokument, která událost spustila
  
V Pythonu

    from scriptforge import CreateScriptService
    svc = CreateScriptService("Array")
    svc = CreateScriptService("ScriptForge.Dictionary")
    svc = CreateScriptService("SFDocuments.Calc")
    svc = CreateScriptService("Timer", True)
    svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
  

Ve skriptech Pythonu je možné uvést při volání metody CreateScriptService názvy argumentů. Následující příklad ukazuje jejich použití při vytváření instance služeb Timer a Document.


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

V zájmu usnadnění psaní skriptů Pythonu nabízí knihovna ScriptForge službu Basic, která umožňuje ze skriptů Pythonu volat sadu metod se stejnou syntaxí a významem, jaké mají stejnojmenné nativní funkce Basicu.


V následujícím příkladu je vytvořena instance služby Basic a zavolána metoda MsgBox, odpovídající funkci MsgBox dostupné v Basicu.


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

Be aware that the Basic service has to be instantiated in Python scripts using the CreateScriptService method.


warning

Všechny procedury nebo identifikátory knihovny ScriptForge, které jsou uvozeny podtržítkem "_", jsou určeny pro interní použití. Není zamýšleno je používat v makrech Basicu nebo skriptech Pythonu.