Abfrage nach geladenen Bibliotheken

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Abfrage nach geladenen Bibliotheken

Beitrag von Charly »

Hallo!

Openoffice liefert einige Bibliotheken mit Makros die man auf Wunsch in das eigene Makro als Unterprogramm einbinden kann. Die Bibliothek muss jedoch geladen sein Das geschieht mit dem Befehl

Code: Alles auswählen

GlobalScope.BasicLibraries.loadLibrary("Tools")
Ich habe nun festgestellt, dass zwar beim Öffnen von OpenOffice ohne diesen Befehl der Zugriff nicht funktioniert, dass mein Makro später ohne diesen Befehl funktioniert. Dass kann z.B. sein nachdem ich im Dialogfeld Makroverwalten die Bibliothek mit der Maus angeklickt habe oder die Bibliothek in einem andern Makro geöffnet habe.

Mein Frage lautet daher, kann ich vor Verwendung des obigen Befehls abfragen, ob die Bibliothek nicht bereits geladen ist.

Gruß
Charly
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

M
ein Frage lautet daher, kann ich vor Verwendung des obigen Befehls abfragen, ob die Bibliothek nicht bereits geladen ist.
Irgendwo habe ich mal was gelesen, aber weiß nicht wo. Ich verstehe aber auch die Frage nicht ganz:
Du mußt diese Bibliothek laden damit Dein Makro funktioniert? Dann lade sie doch in jedem Fall. Ich weiß nicht ob es einen Fehler gibt wenn Du die Bibliothek zu laden versuchst und sie schon geladen ist, aber diesen Fehler kannst Du doch abfangen (On Error Resume Next).

Gruß
Stephan
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Beitrag von Charly »

Hallo Stephan!

Du hast natürlich recht. Es kommt keine Fehlermeldung und meine Frage war mehr puristischer Art: Laß nie einen unnötigen Befehl ausführen.

Ich bin auf die Frage nur gestoßen, weil ich mal die Tools von OpenOffice testen wollte. Ich habe ein Makro mit einem Befehl aus der Bibliothek Tools geschrieben, ohne die Bibliothek zu laden. Es funktionierte auf Anhieb und ich war zufrieden. Beim nächsten Start von OpenOffice kam beim Ausführen des Makros jedoch eine Fehlermeldung. Dadurch habe ich bemerkt, dass die Bibliothek gar nicht automatisch geladen wird, wie ich gemeint habe. Also habe ich das Makro um den Ladebefehl ergänzt und jetzt läuft es einwandfrei.

Gruß
Charly
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Hallo Charly,

ich lese gerade das das wohl mit isLibraryLoaded(Name) zu prüfen ist, Rückgabe TRUE wenn geladen.
Also sollte:

geladen = GlobalScope.BasicLibraries.IsLibraryLoaded("Tools")

funktionieren und 'geladen' den Wert True haben, wenn geladen.


Gruß
Stephan
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Beitrag von Charly »

Hallo Stephan!
Also sollte:

geladen = GlobalScope.BasicLibraries.IsLibraryLoaded("Tools")

funktionieren und 'geladen' den Wert True haben, wenn geladen
Das habe ich gleich getestet und es funktioniert. Besten Dank.

Gruß
Charly
Antworten