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.