Serviço ScriptForge.Services

O principal objetivo do módulo Services é prover acesso ao método CreateScriptService, o qual pode ser chamado em scripts de usuário para instanciar serviços que são implementados usando o framework ScriptForge.

Na terminologia do ScriptForge um serviço é uma coleção de métodos e propriedades que podem ser usados para um propósito comum. Por exemplo, o serviço String fornece métodos para manipular strings e o serviço FileSystem permite o manuseio de arquivos e pastas.

tip

O módulo Services da biblioteca ScriptForge fornece métodos adicionais que são usados tanto internamente para registrar serviços disponíveis como por desenvolvedores interessados em estender as funcionalidades do ScriptForge ao adicionar novos serviços. O único método relevante para scripts de usuário é CreateScriptService.


CreateScriptService

Este método é usado para instanciar um serviço ScriptForge então pode ser chamado em scripts de usuário.

O valor retornado é um objeto Basic ou Nothing se algum erro ocorreu.

Sintaxe:

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

Parâmetros:

service: Nome do serviço identificado como uma string no formato "biblioteca.serviço":

arg0, ...: Lista de argumentos requeridos para invocar o serviço.

Se o primeiro argumento se referir a um gerenciador de eventos, então arg0 é obrigatório e deve ser o objeto UNO que representa o evento passado como argumento para a macro.

Exemplo:

Em Basic

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    ' A ser feito apenas uma vez
    Dim svc As Object
    Set svc = CreateScriptService("Array")
    ' Refere-se ao serviço "ScriptForge.Array" ou SF_Array
    Set svc = CreateScriptService("ScriptForge.Dictionary")
    ' Retorna uma instância com um novo dicionário vazio; "ScriptForge" é opcional
    Set svc = CreateScriptService("SFDocuments.Calc")
    ' Refere-se ao serviço Calc, implementado na biblioteca associada SFDocuments
    Set svc = CreateScriptService("Timer", True)
    ' Retorna uma instância do serviço Timer e é iniciado imediatamente
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    ' Refere-se ao serviço DocumentEvent implementado na biblioteca associada SFDocuments
    ' Retorna a instância do serviço Document que disparou o evento
  
Em 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)
  

Scripts em Python suportam argumentos de palavra-chave ao chamar o método CreateScriptService. O exemplo abaixo ilustra esse conceito ao instanciar os serviços Timer e Document usando argumentos de palavra-chave.


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

Para facilitar o desenvolvimento de scripts Python, a biblioteca ScriptForge disponibiliza o serviço Basic que permite que scripts Python executem métodos nativos da linguagem Basic com a mesma sintaxe e significado de suas funções homônimas em Basic.


O exemplo a seguir cria uma instância do serviço Basic e chama o método MsgBox, o qual é equivalente à função MsgBox disponível em Basic:


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

Note que o serviço Basic deve ser instanciado em scripts Python usando o método CreateScriptService.


warning

Todas as rotinas ou identificadores do ScriptForge em Basic que possuem o caractere "_" como prefixo são reservadas para uso interno. Elas não devem ser usadas em macros escritas em Basic ou em Python.


♥ Doe para nosso projeto! ♥