Contenido
Índice 🔎︎

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

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»:

- La biblioteca es una biblioteca de BASIC que debe existir en GlobalScope. El valor predeterminado es «ScriptForge».

- El servicio es uno de los servicios registrados por la biblioteca ScriptForge.

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

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

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

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.

Temas relacionados

Servicio ScriptForge.Basic

Set Statement

GlobalScope specifier