Servicio ScriptForge.Services

El propósito principal del módulo Servicios es proporcionar acceso al método CreateScriptService, que puede ser llamado en los scripts de usuario para instanciar los servicios que se implementan utilizando el marco ScriptForge.

En la terminología de ScriptForge, un servicio es una colección de métodos y propiedades que pueden ser utilizados para un propósito común. Por ejemplo, el servicio Cadena proporciona métodos para manipular cadenas mientras que el servicio Sistema de Archivos permite la manipulación de archivos y carpetas.

tip

El módulo Servicios de la biblioteca de ScriptForge proporciona métodos adicionales que se utilizan internamente para registrar los servicios disponibles o por los desarrolladores que están interesados en ampliar ScriptForge creando nuevos servicios. El único método que es relevante para los scripts de usuario es CreateScriptService.


CreateScriptService

Este método se utiliza para instanciar un servicio de ScriptForge para que pueda ser llamado en los scripts del usuario.

El valor devuelto es un objeto Basic o Nada si se produjo un error.

Sintaxis:

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

Parámetros:

servicio: el nombre del servicio identificado como una cadena con el formato «biblioteca.servicio»:

arg0, ...: Una lista de argumentos requeridos por el servicio invocado.

Si el primer argumento se refiere a un gestor de eventos, entonces arg0 es obligatorio y debe ser el objeto UNO que representa el evento proporcionado como argumento a la macro de usuario.

Ejemplo:

En BASIC

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    ' Para hacerse una vez
    Dim svc As Object
    Set svc = CreateScriptService("Array")
    ' Hace referencia al servicio «ScriptForge.Array» o SF_Array
    Set svc = CreateScriptService("ScriptForge.Dictionary")
    ' Devuelve una instancia de clase de diccionario vacía nueva; «ScriptForge.» es opcional
    Set svc = CreateScriptService("SFDocuments.Calc")
    ' Hace referencia al servicio Calc, implementado en la biblioteca asociada SFDocuments
    Set svc = CreateScriptService("Timer", True)
    ' Devuelve una instancia de la clase Timer que comienza inmediatamente
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    ' Se refiere al servicio DocumentEvent que existe en la biblioteca SFDocuments asociada
    ' Devuelve la ocurrencia de la clase Document que desencadenó el evento
  
En 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 support keyword arguments when calling CreateScriptService. The following example illustrates this concept by instantiating the Timer and Document services using keyword arguments.


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

To make writing Python scripts more fluid, ScriptForge provides the Basic service which allows Python scripts to call a collection of methods with the same syntax and meaning as their homonymous native Basic functions.


The following example instantiates the Basic service and calls the MsgBox method, which is equivalent to the MsgBox function available in Basic:


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

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


warning

Todas las rutinas o identificadores BASIC de ScriptForge precedidas por guion bajo «_» están reservadas para uso interno. No deben utilizarse en macros BASIC o secuencias Python.


¡Necesitamos su ayuda!