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.

tip

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

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

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

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


warning

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.


Aidez-nous !