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! ♥