Inhalte

# Dienst ScriptForge.Basic

Der Dienst ScriptForge.Basic schlägt eine Sammlung von LibreOffice Basic-Methoden vor, die in einem Python-Kontext ausgeführt werden können. Die Methoden des Dienstes Basic reproduzieren die genaue Syntax und das Verhalten der integrierten Basic-Funktionen.

Typisches Beispiel:

       bas.MsgBox('Diesen Text in einem Meldungsfeld aus einem Python-Skript anzeigen')

ScriptForge. Der Dienst Basic ist auf Python-Skripte beschränkt.

## Dienstaufruf

Bevor Sie den Dienst Basic verwenden, importieren Sie die Methode CreateScriptService() aus dem Modul scriptforge:

        from scriptforge import CreateScriptService
        bas = CreateScriptService("Basic")

## Eigenschaften

Name | Schreibgeschützt | Typ | Beschreibung
--- | --- | --- | ---
MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Ja | Integer | Werte: 0, 1, 5, 4, 3
MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Ja | Integer | Werte: 48, 64, 32, 16
MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Ja | Integer | Werte: 2, 128, 256, 512
IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Ja | Integer | Werte: 3, 2, 5, 7, 1, 4, 6 Konstanten, welche die ausgewählte Schaltfläche MsgBox anzeigt.
StarDesktop | Ja | UNO Objekt | Gibt das Objekt StarDesktop zurück, das die LibreOffice-Anwendung darstellt.
ThisComponent | Ja | UNO Objekt | Wenn die aktuelle Komponente auf ein LibreOffice-Dokument verweist, gibt diese Methode das UNO-Objekt zurück, welches das Dokument darstellt. Diese Eigenschaft gibt None zurück, wenn die aktuelle Komponente keinem Dokument entspricht.
ThisDatabaseDocument | Ja | UNO Objekt | Wenn das Skript von einem Base-Dokument oder einer seiner Unterkomponenten ausgeführt wird, gibt diese Methode die Hauptkomponente der Base-Instanz zurück. Andernfalls gibt diese Eigenschaft None zurück.

Liste der Methoden im Dienst Basic
CDate CDateFromUnoDateTime CDateToUnoDateTime ConvertFromUrl (*) ConvertToUrl (*) CreateUnoService CreateUnoStruct (*) DateAdd | DateDiff DatePart DateValue Format GetDefaultContext GetGuiType (*) GetPathSeparator (*) GetSystemTicks | GlobalScope.BasicLibraries GlobalScope.DialogLibraries InputBox (*) MsgBox (*) Now RGB Wait Xray

Für mit (*) gekennzeichnete Methoden gibt es Python-Alternativen.

## CDate

Konvertiert einen numerischen Ausdruck oder eine Zeichenfolge in ein natives Python-Objekt datetime.datetime.

Diese Methode stellt Python-Skripten die integrierte Basic-Funktion CDate zur Verfügung.

### Syntax:

svc.CDate(expression: any): obj

### Parameter:

expression: ein numerischer Ausdruck oder eine Zeichenfolge, die ein Datum darstellt.

Wenn Sie einen Zeichenfolgenausdruck konvertieren, müssen Datum und Uhrzeit entweder in einem der für Ihre Gebietsschemaeinstellung definierten Datumsakzeptanzmuster eingegeben werden (wählen Sie LibreOffice – EinstellungenExtras – Optionen… – Sprachen und Gebietsschemata – Allgemein) oder im ISO-Datumsformat (derzeit wird nur das ISO-Format mit Bindestrichen, beispielsweise „2012-12-31“ akzeptiert). In numerischen Ausdrücken stellen Werte links von der Dezimalstelle das Datum dar, beginnend mit dem 31. Dezember 1899. Werte rechts von der Dezimalstelle stellen die Uhrzeit dar.

### Beispiel:

        d = bas.CDate(1000.25)
        bas.MsgBox(str(d)) # 1902-09-26 06:00:00
        bas.MsgBox(d.year) # 1902

## CDateFromUnoDateTime

Konvertiert ein(e) Datum/Uhrzeit in UNO-Darstellung in ein natives Python-Objekt datetime.datetime.

### Syntax:

svc.CDateFromUnoDateTime(unodate: uno): obj

### Parameter:

unodate: Datum/Zeit eines UNO-Objekts eines der folgenden Typen: com.sun.star.util.DateTime, com.sun.star.util.Date oder com.sun.star.util.Time

### Beispiel:

Das folgende Beispiel erstellt ein Objekt com.sun.star.util.DateTime und konvertiert es in ein Python-Objekt datetime.datetime.

        uno_date = bas.CreateUnoStruct('com.sun.star.util.DateTime')
        uno_date.Year = 1983
        uno_date.Month = 2
        uno_date.Day = 23
        new_date = bas.CDateFromUnoDateTime(uno_date)
        bas.MsgBox(str(new_date)) # 1983-02-23 00:00:00

## CDateToUnoDateTime

Konvertiert eine Datumsdarstellung in ein Objekt com.sun.star.util.DateTime.

### Syntax:

svc.CDateToUnoDateTime(date: obj): uno

### Parameter:

date: Datums/Zeit eines Pythonobjekts eines der folgenden Typen: datetime.datetime, datetime.date, datetime.time , float (time.time) oder time.struct_time.

### Beispiel:

        from datetime import datetime
        current_datetime = datetime.now()
        uno_date = bas.CDateToUnoDateTime(current_datetime)
        bas.MsgBox(str(uno_date.Year) + "-" + str(uno_date.Month) + "-" + str(uno_date.Day))

## ConvertFromUrl

Gibt einen Systempfad-Dateinamen für die angegebene URL file: zurück.

### Syntax:

svc.ConvertFromUrl(url: str): str

### Parameter:

url: Eine absolute URL file:.

### Rückgabetyp:

Ein Systempfad-Dateiname.

### Beispiel:

        filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt" )
        bas.MsgBox(filename)

Die Methode uno module fileUrlToSystemPath() gibt einen Systempfad mit identischer Syntax zurück.

        import uno
        filename = uno.fileUrlToSystemPath( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt" )
        bas.MsgBox(filename)

## ConvertToUrl

Gibt eine URL file: für den angegebenen Systempfad zurück.

### Syntax:

svc.ConvertToUrl(systempath: str): str

### Parameter:

systempath: Ein Systemdateiname als Zeichenfolge.

### Rückgabetyp:

Eine URL file: als Zeichenfolge.

### Beispiel:

        url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt' )
        bas.MsgBox(url)

Die Methode uno module systemPathToFileUrl() gibt eine Datei-URL für den angegebenen Systempfad zurück.

        from uno import systemPathToFileUrl as ConvertToUrl
        filename = ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt' )
        bas.MsgBox(filename)

## CreateUnoService

Instanziiert einen UNO-Dienst mit dem ProcessServiceManager.

### Syntax:

svc.CreateUnoService(servicename: str): uno

### Parameter:

servicename: Ein vollständig qualifizierter Servicename wie com.sun.star.ui.dialogs.FilePicker oder com.sun.star.sheet.FunctionAccess.

### Beispiel:

        dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')

## CreateUnoStruct

Gibt eine Instanz einer UNO-Struktur des angegebenen Typs zurück.

### Syntax:

svc.CreateUnoStruct(unostructure: str): uno

### Parameter:

unostructure: Ein vollständig qualifizierter Strukturname wie com.sun.star.beans.Property oder com.sun.star.util.DateTime.

### Beispiel:

        date_struct = CreateUnoStruct('com.sun.star.util.DateTime')

Die Methode uno module createUnoStruct() erstellt eine Instanz eines Uno-Strukturtyps.

        import uno
        p = uno.createUnoStruct( 'com.sun.star.beans.Property' )
        bas.MsgBox(p)

## DateAdd

Fügt ein Datum oder Zeitintervall mehrmals zu einem bestimmten Datum/einer bestimmten Uhrzeit hinzu und gibt das resultierende Datum zurück.

### Syntax:

svc.DateAdd(interval: str, number: num, date: datetime): datetime

### Parameter:

interval: Eine Zeichenfolge aus der folgenden Tabelle, welcher das Datum oder Zeitintervall festlegt.

Intervall (Zeichenfolgenwert) | Erklärung
--- | ---
yyyy | Jahr
q | Quartal
m | Monat
y | Kalendertag
w | Wochentag
ww | Kalenderwoche
d | Tag
h | Stunde
n | Minute
s | Sekunde

number: Ein numerischer Ausdruck, der festlegt, wie oft der Wert interval addiert wird, wenn er positiv ist, oder subtrahiert wird, wenn er negativ ist.

date: Ein gegebener Wert datetime.datetime, der Wert interval wird number mal zu diesem Wert datetime.datetime hinzugefügt.

### Rückgabetyp:

Ein Wert datetime.datetime.

### Beispiel:

        dt = datetime.datetime(2004, 1, 31)
        dt = bas.DateAdd("m", 1, dt)
        print(dt)

## DateDiff

Gibt die Anzahl der Datums- oder Zeitintervalle zwischen zwei angegebenen Datums-/Zeitwerten zurück.

### Syntax:

svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int

### Parameter:

interval: Eine Zeichenfolge, welche das Datumsintervall festlegt, wie in der obigen Methode DateAdd beschrieben.

date1, date2: Die beiden zu vergleichenden Werte datetime.datetime.

ErsterTagDerWoche: Ein optionaler Parameter, der den ersten Tag einer Woche festlegt.

Werte für ErsterTagDerWoche | Erklärung
--- | ---
0 | Systemvorgabewert verwenden
1 | Sonntag (Vorgabe)
2 | Montag
3 | Dienstag
4 | Mittwoch
5 | Donnerstag
6 | Freitag
7 | Samstag

ErsteWocheDesJahres: Ein optionaler Parameter, der die erste Woche eines Jahres festlegt.

Werte für ErsteWocheDesJahres | Erklärung
--- | ---
0 | Systemvorgabewert verwenden
1 | Woche 1 ist die Woche, auf die der 1. Januar fällt. (Vorgabe)
2 | Woche 1 ist die erste Woche, die mindestens vier Tage dieses Jahres enthält
3 | Woche 1 ist die erste Woche, die ausschließlich Tage dieses Jahres enthält

### Rückgabetyp:

Eine Zahl.

### Beispiel:

        date1 = datetime.datetime(2005,1, 1)
        date2 = datetime.datetime(2005,12,31)
        diffDays = bas.DateDiff('d', date1, date2)
        print(diffDays)

## DatePart

Die Funktion DatePart gibt einen bestimmten Teil eines Datums zurück.

### Syntax:

svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int

### Parameter:

interval: Eine Zeichenfolge, welche das Datumsintervall festlegt, wie in der obigen Methode DateAdd beschrieben.

date: Das Datum/die Uhrzeit, ab der das Ergebnis berechnet wird.

firstdayofweek, firstweekofyear: optionale Parameter, die jeweils den Starttag einer Woche und die Startwoche eines Jahres festlegen, wie in der obigen Methode DateDiff beschrieben.

### Rückgabetyp:

Der extrahierte Teil für das angegebene Datum/die angegebene Uhrzeit.

### Beispiel:

        print(bas.DatePart("ww", datetime.datetime(2005,12,31)
        print(bas.DatePart('q', datetime.datetime(1999,12,30)

## DateValue

Berechnet einen Datumswert aus einer Datumszeichenfolge.

### Syntax:

svc.DateValue(date: str): datetime

### Parameter:

date: Eine Zeichenfolge, die das Datum enthält, das in ein Objekt Date konvertiert wird.

Die an DateValue übergebene Zeichenfolge muss in einem der für Ihre Gebietsschemaeinstellung definierten Datumsformate ausgedrückt werden (wählen Sie LibreOffice – EinstellungenExtras – Optionen… – Sprachen und Gebietsschemata – Allgemein) oder das ISO-Datumsformat verwenden „JJJJ-MM-TT“ (Jahr, Monat und Tag durch Bindestriche getrennt).

### Rückgabetyp:

Das berechnete Datum.

### Beispiel:

        dt = bas.DateValue("23-02-2011")
        print(dt)

## Format

Konvertiert eine Zahl in eine Zeichenfolge und formatiert sie dann gemäß dem von Ihnen festgelegten Format.

### Syntax:

svc.Format(expression: any, format = ''): str

### Parameter:

Ausdruck: Numerischer Ausdruck, den Sie in eine formatierte Zeichenfolge konvertieren möchten.

format: Zeichenfolge, die den Formatcode für die Zahl angibt. Wenn format weggelassen wird, funktioniert die Funktion "Format" wie die LibreOffice Basic Funktion Str().

### Rückgabetyp:

Text-Zeichenfolge.

### Format-Codes

in BASIC kann ein Code für Format in drei Abschnitte unterteilt werden, die durch Semikola getrennt sind. Der erste Teil definiert das Format für positive Werte, der zweite Teil für negative Werte und der dritte Teil für Null. Wenn Sie nur einen Code für Format festlegen, gilt dieser für alle Zahlen.

Um das Gebietsschema festlegen, das zur Steuerung der Formatierung von Zahlen, Datumsangaben und Währungen in LibreOffice Basic verwendet wird, wählen LibreOffice – EinstellungenExtras – Optionen… – Sprachen und Gebietsschemata – Allgemein. In Basic-Formatcodes wird der Dezimalpunkt (.) immer als Platzhalter für das in Ihrem Gebietsschema definierte Dezimaltrennzeichen verwendet und durch das entsprechende Zeichen ersetzt.

Dies gilt entsprechend für das Gebietsschema für Datums-, Uhrzeit- und Währungsformate. Der Basic-Format-Code wird entsprechend Ihrer Gebietsschema-Einstellung ausgewertet und angezeigt.

In der folgenden Liste werden die Codes beschrieben, die Sie zum Formatieren eines numerischen Ausdrucks verwenden können:

Code | Beschreibung
--- | ---
0 | Wenn expression an der Stelle der 0 im Code format eine Ziffer hat, wird die Ziffer angezeigt, andernfalls wird eine Null angezeigt. Wenn Ausdruck weniger Ziffern als die Anzahl der Nullen im Code für Format hat (auf beiden Seiten des Dezimaltrennzeichens), werden führende oder nachgestellte Nullen angezeigt. Wenn Ausdruck links vom Dezimaltrennzeichen mehr Ziffern als die Anzahl der Nullen im Code für Format hat, werden die zusätzlichen Ziffern ohne Formatierung angezeigt. Nachkommastellen in Ausdruck werden auf so viele Stellen gerundet, wie im Code für Format Nullen hinter dem Dezimaltrennzeichen stehen.
# | Wenn expression an der Stelle des Platzhalters # im Code format eine Ziffer enthält, wird die Ziffer angezeigt, andernfalls wird an dieser Stelle nichts angezeigt. Dieses Zeichen verhält sich wie die 0, außer dass führende oder nachgestellte Nullen nicht angezeigt werden, wenn mehr Zeichen # im Code für Format vorhanden sind als Ziffern in Ausdruck. Es werden nur die maßgeblichen Ziffern in Ausdruck angezeigt.
. (period) | Der Dezimalplatzhalter legt die Anzahl der Dezimalstellen links und rechts vom Dezimaltrennzeichen fest. Wenn der Code für Format nur # als Platzhalter links neben diesem Symbol enthält, beginnen Zahlen kleiner als 1 mit einem Dezimaltrennzeichen. Um immer eine führende Null bei Dezimalzahlen anzuzeigen, verwenden Sie 0 als Platzhalter für die erste Ziffer links vom Dezimaltrennzeichen. Ob der Punkt als Tausender- oder Dezimaltrennzeichen verwendet wird, hängt vom verwendeten Gebietsschema ab. Welches Zeichen tatsächlich als Dezimaltrennzeichen angezeigt wird, richtet sich nach dem Zahlenformat in Ihren Systemeinstellungen. In den gezeigten Beispielen wird angenommen, dass das Gebietsschema auf "USA" eingestellt ist.
% | Multipliziert expression mit 100 und fügt das Prozentzeichen (%) dort ein, wo expression im Code format erscheint.
E- E+ e- e+ | Wenn der Code für format mindestens einen Ziffernplatzhalter (0 oder #) rechts neben dem Symbol E-, E+, e- oder e+ enthält, wird expression im wissenschaftlichen oder exponentiellen Format formatiert. Der Buchstabe E oder e wird zwischen der Zahl und dem Exponenten eingefügt. Die Anzahl der Platzhalter für Ziffern rechts neben dem Symbol bestimmt die Anzahl der Ziffern im Exponenten. Ist der Exponent negativ, so wird bei den Symbolen E-, E+, e-, e+ ein Minuszeichen unmittelbar vor dem Exponenten ausgegeben. Ist der Exponent positiv, so wird nur bei den Symbolen E+ oder e+ ein Pluszeichen ausgegeben.
- + $ ( ) space | Ein Pluszeichen (+), Minuszeichen (-), Dollarzeichen ($), Leerzeichen oder Klammern, die direkt im Code format eingegeben werden, werden als Literalzeichen angezeigt.
\ | Um andere als die angegebenen Zeichen auszugeben, müssen Sie einen umgekehrten Schrägstrich (\) vor das entsprechende Zeichen setzen oder das Zeichen in Anführungsstriche (" ") setzen. Der umgekehrte Schrägstrich zeigt das nächste Zeichen im Code format an. Zeichen im Code für Format, die eine besondere Bedeutung haben, können nur dann direkt als Zeichen angezeigt werden, wenn ihnen ein Rückstrich vorangestellt ist. Der Rückstrich selbst wird nicht angezeigt, es sei denn, Sie geben einen doppelten Rückstrich (\\) in den Code für Format ein. Die Zeichen, denen Sie im Format-Code einen umgekehrten Schrägstrich voranstellen müssen, damit sie als normales Zeichen (also nicht in ihrer Sonderbedeutung) angezeigt werden, sind die Zeichen zur Formatierung von Datum- und Zeitangaben (a, c, d, h, m, n, p, q, s, t, w, y, /, :), von Zahlen (#, 0, %, E, e, Komma, Punkt) und von Zeichenfolgen (@, &, <, >, !).

### Vordefinierte Formate

Sie können auch die folgenden vordefinierten Zahlenformate verwenden. Mit Ausnahme von "General Number" geben alle vordefinierten Codes für Format die Zahl als Dezimalzahl mit zwei Dezimalstellen zurück.

Bei Verwendung vordefinierter Formate muss der jeweilige Name im Formatausdruck in Anführungszeichen stehen.

Code | Beschreibung
--- | ---
"<" | Konvertiert expression in Kleinbuchstaben.
">" | Konvertiert expression in Großbuchstaben.
"c" or "General Date" | Gibt den numerischen Wert expression im kurzen Datumsformat zurück, optional mit "H:MM:SS AM/PM". Wenn expression eine Zeichenfolge ist, wird diese zurückgegeben.
"n" | Gibt die Minute des numerischen Ausdrucks mit 1 oder 2 Ziffern zurück.
"nn" | Gibt die Minute des numerischen Ausdrucks mit zwei Ziffern zurück.
"w" | Gibt den Wochentag des numerischen Ausdrucks zurück. 1 ist Sonntag und 7 ist Samstag.
"General Number" | Gibt den numerischen Wert expression mit 12 Ziffern (0,#############) zurück.
"Currency" | Gibt den numerischen Wert expression in der Währung des Gebietsschemas zurück.
"Fixed" | Gibt den numerischen Wert expression mit 2 Dezimalstellen (0,00) zurück.
"Standard" | Gibt den numerischen Wert expression mit Tausendertrennzeichen und 2 Dezimalstellen (@0,00) zurück.
"Percent" | Gibt den numerischen Wert expression als Prozentwert (0,00%) zurück.
"Scientific" | Gibt den numerischen Wert expression in wissenschaftlicher Notation (#,00E+00) zurück.
"Yes/No" | Gibt „Ja“ zurück, wenn der numerische Wert expression ungleich Null ist, andernfalls „Nein“. „Ja“ und „Nein“ sind lokalisiert.
"True/False" | Gibt „Wahr“ zurück, wenn der numerische Wert expression ungleich Null ist, andernfalls „Falsch“. „Wahr“ und „Falsch“ sind lokalisiert.
"On/Off" | Gibt „An“ zurück, wenn der numerische Wert expression ungleich Null ist, andernfalls „Aus“. „An“ und „Aus“ sind lokalisiert.
"Long Date" or "dddddd" | Gibt den numerischen Wert expression im langen Datumsformat des Systems zurück und hängt vom Gebietsschema ab.
"Medium Date" | Gibt den numerischen Wert expression im Datumsformat TT-MMM-JJ zurück und ist von der Ländereinstellung abhängig.
"Short Date" or "ddddd" | Gibt den numerischen Wert expression im Systemkurzdatumsformat zurück und hängt vom Gebietsschema ab.
"Long Time" or "ttttt" | Gibt den numerischen Wert expression im Systemlangzeitformat zurück und hängt vom Gebietsschema ab („H:MM:SS AM/PM“).
"Medium Time" | Gibt den numerischen Wert expression im mittleren Zeitformat des Systems zurück und hängt vom Gebietsschema ab (HH:MM AM/PM).
"Short Time" | Gibt den numerischen Wert expression im System-Kurzzeitformat zurück und hängt vom Gebietsschema ab (HH:MM).

Um das Gebietsschema festlegen, das zur Steuerung der Formatierung von Zahlen, Datumsangaben und Währungen in LibreOffice Basic verwendet wird, wählen LibreOffice – EinstellungenExtras – Optionen… – Sprachen und Gebietsschemata – Allgemein. In Basic-Formatcodes wird der Dezimalpunkt (.) immer als Platzhalter für das in Ihrem Gebietsschema definierte Dezimaltrennzeichen verwendet und durch das entsprechende Zeichen ersetzt.

Dies gilt entsprechend für das Gebietsschema für Datums-, Uhrzeit- und Währungsformate. Der Basic-Format-Code wird entsprechend Ihrer Gebietsschema-Einstellung ausgewertet und angezeigt.

### Beispiel:

        txt = bas.Format(6328.2, '##.##0.00')
        print(txt)

## GetDefaultContext

Gibt den Standardkontext der "Process Service Factory" zurück, sofern vorhanden, andernfalls wird eine Nullreferenz zurückgegeben.

GetDefaultContext ist eine Alternative zur Methode getComponentContext(), die von der globalen Variable XSCRIPTCONTEXT oder aus dem Modul uno.py verfügbar ist.

### Syntax:

svc.GetDefaultContext(): uno

### Rückgabetyp:

Der Standardkomponentenkontext wird verwendet, wenn Dienste über XMultiServiceFactory instanziiert werden. Siehe das Kapitel Professional UNO im Entwicklerhandbuch auf api.libreoffice.org für mehr Informationen.

### Beispiel:

        ctx = bas.GetDefaultContext()

## GetGuiType

Gibt einen numerischen Wert zurück, der die grafische Benutzeroberfläche festlegt. Diese Funktion wird nur aus Gründen der Abwärtskompatibilität mit früheren Versionen bereitgestellt.

Verweist auf die Methode system() aus dem Python-Modul platform, um das Betriebssystem zu identifizieren.

### Syntax:

svc.GetGuiType(): int

### Beispiel:

        n = bas.GetGuiType()

Anweisungen für Wiser-Skripte finden Sie auf der Hilfeseite Identifizierung des Betriebssystems.

• Der Dienst ScriptForge.Platform bietet eine Sammlung von Eigenschaften zur aktuellen Ausführungsumgebung und zum Kontext, einschließlich der Plattformerkennung.
• Eine umfassende Identifizierung des Betriebssystemnamens ist über die Berechnungsformel INFO("system") verfügbar.

## GetPathSeparator

Gibt das betriebssystemabhängige Verzeichnistrennzeichen zurück, das zum Festlegen von Dateipfaden verwendet wird.

Verwendet os.pathsep aus dem Python-Modul os, um das Pfadtrennzeichen zu identifizieren.

### Syntax:

svc.GetPathSeparator(): str

### Beispiel:

        sep = bas.GetPathSeparator()

## GetSystemTicks

Gibt die Anzahl der vom Betriebssystem bereitgestellten System-Ticks zurück. Mit dieser Funktion können Sie bestimmte Prozesse optimieren. Verwenden Sie diese Methode, um die Zeit in Millisekunden zu schätzen:

### Syntax:

svc.GetSystemTicks(): int

### Beispiel:

        ticks_ini = bas.GetSystemTicks()
        time.sleep(1)
        ticks_end = bas.GetSystemTicks()
        bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))

## GlobalScope.BasicLibraries

Gibt das UNO-Objekt zurück, das alle gemeinsam genutzten Basic-Bibliotheken und -Module enthält.

Diese Methode ist das Python-Äquivalent zu GlobalScope.BasicLibraries in Basic-Skripten.

### Syntax:

svc.GlobalScope.BasicLibraries(): uno

### Rückgabetyp:

com.sun.star.script.XLibraryContainer

### Beispiel:

Das folgende Beispiel lädt die Gimmicks Bibliothek Basic, falls sie noch nicht geladen wurde.

        libs = bas.GlobalScope.BasicLibraries()
        if not libs.isLibraryLoaded("Gimmicks"):
            libs.loadLibrary("Gimmicks")

## GlobalScope.DialogLibraries

Gibt das UNO-Objekt zurück, das alle gemeinsam genutzten Dialogbibliotheken enthält.

Diese Methode ist das Python-Äquivalent zu GlobalScope.DialogLibraries in Basic-Skripten.

### Syntax:

svc.GlobalScope.DialogLibraries(): uno

### Rückgabetyp:

com.sun.star.comp.sfx2.DialogLibraryContainer

### Beispiel:

Das folgende Beispiel zeigt ein Meldungsfeld mit den Namen aller verfügbaren Dialogbibliotheken.

        dlg_libs = bas.GlobalScope.DialogLibraries()
        lib_names = dlg_libs.getElementNames()
        bas.MsgBox("\n".join(lib_names))

## InputBox

### Syntax:

svc.InputBox(prompt: str, [title: str], [default: str], [xpostwips: int, ypostwips: int]): str

### Parameter:

Meldung: Zeichenfolgenausdruck, der im Dialog als Meldung angezeigt wird.

Titel: Zeichenfolgenausdruck, der in der Titelleiste des Dialogs angezeigt wird.

Standard: Zeichenfolgenausdruck, der im Textfeld des Dialogs als Standard angezeigt wird, wenn keine andere Eingabe übergeben wird.

x_Position_twips: Integerausdruck, der die horizontale Position des Dialogs festlegt. Die Position ist eine absolute Koordinate, nimmt also nicht auf das Fenster von LibreOffice Bezug.

y_Position_twips: Integerausdruck, der die vertikale Position des Dialogs festlegt. Die Position ist eine absolute Koordinate, nimmt also nicht auf das Fenster von LibreOffice Bezug.

Wenn x_Position_twips und y_Position_twips weggelassen werden, wird der Dialog auf dem Bildschirm zentriert. Als Maßeinheit wird Twips verwendet.

### Rückgabetyp:

String

### Beispiel:

        txt = s.InputBox('Bitte geben Sie einen Satz ein:', "Sehr geehrter Benutzer")
        s.MsgBox(txt, s.MB_ICONINFORMATION, "Bestätigung des Satzes")

Ausführliche Informationen finden Sie im Wiki unter Input/Output to Screen with Python (englisch).

## MsgBox

Zeigt einen Dialog mit einer Meldung an und gibt einen optionalen Wert zurück.
MB_xx-konstants helfen bei der Festlegung des Dialogtyps, der Anzahl und Art der anzuzeigenden Schaltflächen sowie des Symboltyps. Durch Addition ihrer jeweiligen Werte bilden sie Bitmuster, die das Aussehen des Dialogs MsgBox festlegen.

### Syntax:

bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]

### Parameter:

prompt: Zeichenfolge, die im Dialog als Meldung angezeigt wird. Zeilenumbrüche können mit Chr$(13) eingefügt werden.

title: Zeichenfolge, die in der Titelleiste des Dialoges angezeigt wird. Wird diese weggelassen, so erscheint in der Titelleiste der Name der jeweiligen Anwendung.

buttons: Ein beliebiger Ausdruck vom Typ Integer, der den Dialogtyp und die Anzahl und Art der angezeigten Schaltflächen sowie die Art des Symbols festlegt. buttons stellt eine Kombination von Bitmustern dar. Durch Addition ihrer jeweiligen Werte können also mehrere Dialogelemente definiert werden:

### Rückgabetyp:

Eine optionale ganze Zahl, wie in den obigen Eigenschaften IDxx beschrieben.

### Beispiel:

        txt = s.InputBox('Bitte geben Sie einen Satz ein:', "Sehr geehrter Benutzer")
        s.MsgBox(txt, s.MB_ICONINFORMATION, "Bestätigung des Satzes")

Ausführliche Informationen finden Sie im Wiki unter Input/Output to Screen with Python (englisch).

## Now

Gibt das aktuelle Systemdatum und die aktuelle Uhrzeit als ein natives Python-Objekt datetime.datetime zurück.

### Syntax:

svc.Now(): datetime

### Beispiel:

        bas.MsgBox(bas.Now(), bas.MB_OK, "Now")

## RGB

Gibt einen ganzzahligen Farbwert zurück, der aus roten, grünen und blauen Komponenten besteht.

### Syntax:

svc.RGB(red:int, green: int, blue: int): int

### Parameter:

Rot: Ein beliebiger Integerausdruck, der die Rotkomponente (0-255) der zusammengesetzten Farbe angibt.

Grün: Ein beliebiger Integerausdruck, der die Grünkomponente (0-255) der zusammengesetzten Farbe angibt.

Blau: Ein beliebiger Integerausdruck, der die Blaukomponente (0-255) der zusammengesetzten Farbe angibt.

Der resultierende Wert Long wird mit der folgenden Formel berechnet:
Ergebnis = rot×65536 + grün×256 + blau.

Im VBA-Kompatibilitätsmodus (Option VBASupport 1) wird der Wert Long berechnet als
Ergebnis = rot + grün×256 + blau×65536
Siehe VGA-Funktion RGB

Der Dialog Farbauswahl hilft bei der Berechnung der Rot-, Grün- und Blaukomponenten einer zusammengesetzten Farbe. Ändern der Textfarbe und das Auswählen von Benutzerdefinierte Farbe zeigt den Farbauswahldialog an.

### Rückgabetyp:

Integer

### Beispiel:

        YELLOW = bas.RGB(255,255,0)

## Wait

Praktische Funktion zur Nachbildung der grundlegenden Funktion Wait() in Python-Skripten.

Diese Methode ist normalerweise nicht erforderlich. Aber Konstruktionen wie:

            import time
            while True:
                time.sleep(1)

haben den Nachteil, dass sie häufig die Benutzeroberfläche von LibreOffice einfrieren lassen. Der folgende Code könnte hingegen eine gute Alternative darstellen:

            basic = CreateScriptService('Basic')
            while True:
                basic.Wait(1000)

### Parameter:

millisec: die Wartezeit (in Millisekunden), bevor das Programm fortgesetzt wird.

## Xray

Untersuchen Sie Uno-Objekte oder -Variablen.

### Syntax:

svc.Xray(obj: any)

### Parameter:

obj: Eine Variable oder ein UNO-Objekt.

### Beispiel:

        bas.Xray(bas.StarDesktop)

Alle ScriptForge Basic-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.

Verwandte Themen

Bezeichner GlobalScope

Programmierung mit Python-Skripten

uno.fileUrlToSystemPath()

uno.systemPathToFileUrl()

Input/Output to Screen with Python im Wiki (englisch)

XSCRIPTCONTEXT.getComponentContext()

uno.getComponentContext()

platform.system()

os.pathsep()

Bitte unterstützen Sie uns!