Necessitamos da sua ajuda!

ScriptForge.Services serviço

O principal objetivo do módulo Services é proporcionar acesso ao método CreateScriptService, que pode ser chamado em scripts do utilizador para instanciar serviços implementados utilizando a estrutura ScriptForge.

Na terminologia do ScriptForge, um serviço é um conjunto de métodos e propriedades que podem ser utilizados para um objetivo comum. Por exemplo, o serviço String disponibiliza métodos para a manipulação de cadeias de caracteres, enquanto o serviço FileSystem permite a manipulação de ficheiros e pastas.

Ícone da dica

O módulo Services da biblioteca ScriptForge disponibiliza métodos adicionais que são utilizados internamente para registar os serviços disponíveis ou por programadores interessados em ampliar as funcionalidades do ScriptForge através da criação de novos serviços. O único método relevante para os scripts do utilizador é o CreateScriptService.


CreateScriptService

Este método é utilizado para instanciar um serviço do ScriptForge, para que possa ser chamado em scripts do utilizador.

O valor devolvido é um objeto Basic ou Nothing, caso tenha ocorrido um erro.

Sintaxe:

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

Parâmetros:

serviço: O nome do serviço identificado como uma cadeia de caracteres no formato «library.service»:

arg0, ...: Uma lista de argumentos exigidos pelo serviço invocado.

Se o primeiro argumento se referir a um gestor de eventos, então arg0 é obrigatório e deve ser o objeto UNO que representa o evento fornecido como argumento à macro do utilizador.

Exemplo:

Em Basic

    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    ' A fazer 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")
    ' Devolve uma nova instância da classe de dicionário vazio; «ScriptForge.» é opcional
    Set svc = CreateScriptService("SFDocuments.Calc")
    ' Refere-se ao serviço Calc, implementado na biblioteca SFDocuments associada
    Set svc = CreateScriptService("Timer", True)
    ' Devolve uma instância da classe Timer que começa a funcionar imediatamente
    Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
    ' Refere-se ao serviço DocumentEvent implementado na biblioteca SFDocuments associada
    ' Devolve a instância da classe Document que desencadeou 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)
  

Os scripts em Python suportam argumentos-chave ao chamar o CreateScriptService. O exemplo seguinte ilustra este conceito, instanciando os serviços Timer e Document utilizando argumentos-chave.


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

Para tornar a escrita de scripts em Python mais fluida, o ScriptForge disponibiliza o serviço Basic, que permite que os scripts em Python chamem um conjunto de métodos com a mesma sintaxe e significado que as suas funções nativas homónimas do Basic.


O exemplo seguinte instancia o serviço Basic e chama o método MsgBox, que é equivalente à função MsgBox disponível no Basic:


    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
    bas.MsgBox("Hello World!")
  
Ícone de nota

Tenha em atenção que o serviço Basic tem de ser instanciado em scripts Python utilizando o método CreateScriptService.


Ícone de aviso

Todas as rotinas ou identificadores do ScriptForge Basic que tenham o caractere de sublinhado «_» como prefixo estão reservados para uso interno. Não se destinam a ser utilizados em macros do Basic ou em scripts Python.


D'oh! You found a bug (text/sbasic/shared/03103700.xhp#Set_h1 not found).