Jedes Dokument hat zwei Objekte mit denen auf die Bibliotheken zu gegriffen werden
kann:
BasicLibraries und DialogLibraries.
oBasicLibrary = BasicLibraries
oDlgLibrary = DialogLibraries
Zusätzlich gibt es diese beiden Objekte noch global für die installierten Bibliotheken.
oGlobalBasicLibrary = Globalscope.BasicLibraries
oGlobalDlgLibrary = Globalscope.DialogLibraries
Über die Elemente der Bibliothek kann man diese nun löschen und einfügen.
Einfügen oGlobalBasicLibrary.createLibrary( "Bibliothek" )
Einfügen oGlobalDlgLibrary.createLibrary( "Bibliothek" )
Wichtig ist hierbei zu wissen, dass Starbasic eine Bibliothek eigentlich zweimal anlegt.
Eine
als Container für Module und eine als Container für Dialoge.Man muß daher auch beide
erzeugen und später auch löschen. Das heißt die folgenden Schritte müssen zweimal
ausgeführt werden.
Um die eigentlichen Makros zu kopieren, holt man sich die aus der QuellBibliothek
oquell_Lib = oBasicLibrary.getByName(quelle_lib)
'Diese Elemente müssen kopiert werden.
quellModules = oquell_Lib.getElementNames()
'Wenn alles ok kopieren der Elemente
If
oLib.hasByName(quelle_lib) Then
oquell_Lib = oLib.getByName(quelle_lib)
quellModules
= oquell_Lib.getElementNames()
for
Zaehler=0 to ubound( quellModules())
oZiel_Lib
= oGlobalLibrary.getByName(ziel_lib)
If
oZiel_Lib.hasByName( quellModules(zaehler) ) = False Then
oZiel_Lib.insertByName(
quellModules(zaehler),oquell_Lib.getByName(
quellModules(zaehler)))
End
If
Next
Zaehler
End
If
Das war es schon.
Löschen?
Einfach mit removelibrary
oGlobalLibrary = GlobalScope.DialogLibraries
oGlobalLibrary.removeLibrary(
Libname )
oGlobalLibrary
= GlobalScope.BasicLibraries
oGlobalLibrary.removeLibrary(
Libname )
Auch wieder zweimal. Einmal Dialoge und einmal Module.
Siehe auch Tools vom Dannenhöfer.
Dort sind die Makros schon komplett hinterlegt.