Hilfe für LibreOffice 24.8
Der Hauptzweck des Moduls Services besteht darin, Zugriff auf die Methode CreateScriptService bereitzustellen, die in Benutzerskripten aufgerufen werden kann, um Dienste zu instanziieren, die mit dem Framework ScriptForge implementiert werden.
In der Terminologie von ScriptForge ist ein Dienst eine Sammlung von Methoden und Eigenschaften, die für einen gemeinsamen Zweck verwendet werden können. Beispielsweise bietet der Dienst String Methoden zum Bearbeiten von Zeichenfolgen, während der Dienst FileSystem die Bearbeitung von Dateien und Ordnern ermöglicht.
Das Modul Services der Bibliothek ScriptForge bietet zusätzliche Methoden, die entweder intern verwendet werden, um verfügbare Dienste zu registrieren, oder von Entwicklern, die ScriptForge erweitern möchten, indem sie neue Dienste erstellen. Die einzige Methode, die für Benutzerskripte relevant ist, ist CreateScriptService.
Diese Methode wird verwendet, um einen Dienst ScriptForge zu instanziieren, damit er in Benutzerskripten aufgerufen werden kann.
Der zurückgegebene Wert ist ein Basic-Objekt oder Nothing, wenn ein Fehler aufgetreten ist.
svc.CreateScriptService(service: str, [arg0: any] ...): svc
service: Der Name des Dienstes, der als Zeichenfolge im Format "library.service" identifiziert wird:
library ist eine Basic-Bibliothek, die in GlobalScope vorhanden sein muss. Der Standardwert ist "ScriptForge".
service ist einer der von der Bibliothek ScriptForge registrierten Dienste.
arg0, …: Eine Liste von Argumenten, die vom aufgerufenen Dienst benötigt werden.
Wenn sich das erste Argument auf einen Ereignismanager bezieht, ist arg0 obligatorisch und muss das UNO-Objekt sein, welches das Ereignis darstellt, das als Argument für das Benutzermakro bereitgestellt wird.
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
' Einmal auszuführen
Dim svc As Object
Set svc = CreateScriptService("Array")
' Bezieht sich auf den Dienst "ScriptForge.Array" oder "SF_Array"
Set svc = CreateScriptService("ScriptForge.Dictionary")
' Gibt eine neue leere Klasseninstanz Dictionary zurück; "ScriptForge." ist optional
Set svc = CreateScriptService("SFDocuments.Calc")
' Bezieht sich auf den Dienst "Calc", der in der zugehörigen Bibliothek "SFDocument" implementiert ist
Set svc = CreateScriptService("Timer", True)
' Gibt eine Klasseninstanz "Timer" zurück, die sofort beginnt
Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
' Bezieht sich auf den Dienst "DocumentEvent", der in der zugeordneten Bibliothek "SFDocument" implementiert ist
' Gibt die Instanz der Klasse "Document" zurück, die das Ereignis ausgelöst hat
from scriptforge import CreateScriptService
svc = CreateScriptService("Array")
svc = CreateScriptService("ScriptForge.Dictionary")
svc = CreateScriptService("SFDocuments.Calc")
svc = CreateScriptService("Timer", True)
svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
Python-Skripte unterstützen Schlüsselwortargumente beim Aufruf von CreateScriptService. Das folgende Beispiel veranschaulicht dieses Konzept, indem die Dienste Timer und Document mithilfe von Schlüsselwortargumenten instanziiert werden.
from scriptforge import CreateScriptService
# Timer
my_timer = CreateScriptService("Timer", start = True)
# Document
my_doc = CreateScriptService("Document", windowname = "some_file.ods")
Um das Schreiben von Python-Skripten flüssiger zu gestalten, bietet ScriptForge den Dienst Basic, der es Python-Skripten ermöglicht, eine Sammlung von Methoden mit derselben Syntax und Bedeutung wie ihre gleichnamigen nativen Basic-Funktionen aufzurufen.
Das folgende Beispiel instanziiert den Dienst Basic und ruft die Methode MsgBox auf, die der in Basic verfügbaren Funktion MsgBox entspricht:
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello World!")
Beachten Sie, dass der Dienst Basic in Python-Skripten mit der Methode CreateScriptService instanziiert werden muss.