Contenu

# Service ScriptForge.Services

L'objectif principal du module Services est de fournir un accès à la méthode CreateScriptService, qui peut être appelée dans des scripts utilisateur pour instancier des services implémentés à l'aide de l'environnement ScriptForge.

Dans la terminologie de ScriptForge, un service est un ensemble de méthodes et de propriétés pouvant être utilisées dans un but commun. Par exemple, le service String fournit des méthodes de manipulation de chaînes tandis que le service FileSystem permet la manipulation de fichiers et de dossiers.

Le module Services de la bibliothèque ScriptForge fournit des méthodes supplémentaires qui sont utilisées soit en interne pour enregistrer les services disponibles, soit par les développeurs qui souhaitent étendre ScriptForge en créant de nouveaux services. La seule méthode pertinente pour les scripts utilisateur est CreateScriptService.

## CreateScriptService

Cette méthode est utilisée pour instancier un service ScriptForge afin qu'il puisse être appelé dans les scripts utilisateur.

La valeur renvoyée est un objet Basic ou Nothing si une erreur s'est produite.

### Syntaxe :

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

### Paramètres :

service : le nom du service identifié comme une chaîne au format "library.service" :

- La bibliothèque est une bibliothèque Basic qui doit exister dans GlobalScope. La valeur par défaut est "ScriptForge".

- Le service est l'un des services enregistrés par la bibliothèque ScriptForge.

arg0, ... : une liste d'arguments requis par le service invoqué.

Si le premier argument fait référence à un gestionnaire d'événements, alors arg0 est obligatoire et doit être l'objet UNO représentant l'événement fourni comme argument à la macro utilisateur.

### Exemple :

##### En Basic :

        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        ' À faire une fois
        Dim svc As Object
        Set svc = CreateScriptService("Array")
        ' Fait référence au service "ScriptForge.Array" ou SF_Array
        Set svc = CreateScriptService("ScriptForge.Dictionary")
        ' Renvoie une nouvelle instance de classe de dictionnaire vide ; "Script Forge." est facultatif
        Set svc = CreateScriptService("SFDocuments.Calc")
        ' Fait référence au service Calc, implémenté dans la bibliothèque SFDocuments associée
        Set svc = CreateScriptService("Timer", True)
        ' Renvoie une instance de classe Timer commençant immédiatement
        Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
        ' Fait référence au service DocumentEvent implémenté dans la bibliothèque SFDocuments associée
        ' Renvoie l'instance de la classe Document qui a déclenché l'événement

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

Les scripts Python prennent en charge les arguments de mots clés lors de l'appel de CreateScriptService. L'exemple suivant illustre ce concept en instanciant les services Timer et Document à l'aide d'arguments de mots clés.

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

Pour rendre l'écriture de scripts Python plus fluide, ScriptForge fournit le service Basic qui permet aux scripts Python d'appeler une collection de méthodes avec la même syntaxe et la même signification que leurs fonctions Basic natives homonymes.

L'exemple suivant instancie le service Basic et appelle la méthode MsgBox, qui équivaut à la fonction MsgBox disponible en Basic :

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

Sachez que le service Basic doit être instancié dans les scripts Python à l'aide de la méthode CreateScriptService.

Toutes les routines ou identifiants de base ScriptForge qui sont préfixés par un caractère de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans des macros de base ou des scripts Python.

Rubriques connexes

ScriptForge.Service Basic

Instruction Set

Spécificateur GlobalScope

Aidez-nous !