Hey Marcel,
das sind ja mal wieder Fragen *grins*.
Und ja, Du kannst sowohl Module in (bestehenden) Bibliotheken als auch Bibliotheken selbst per Makro erzeugen und verändern.
Ich nutze das zum Beispiel, um benutzergenerierte Optionswerte zu speichern. Dazu gibt es dann eigene, makrogenerierte (dynamische) Module in der Bibliothek.
Den Nutzen, eine eigene Bibliothek zu erzeugen, habe ich noch nicht gefunden.
So, nun ein paar Bemerkungen zu Deinen Codeschnipseln:
der dargestellt Text (sDynamicText) ist sicher nur ein Testbeispiel - er ergäbe praktisch keinen Sinn. Das, was Du dort "dynamisch" einträgst, könntest Du genauso gut statisch eintragen und dann bei Bedarf als Funktion aufrufen.
Zum zweiten Codebereich:
Code: Alles auswählen
...
If GlobalScope.BasicLibraries.getByName("Test").hasByName("testMod") Then
GlobalScope.BasicLibraries.getByName("Test").removeByName("testMod")
GlobalScope.BasicLibraries.getByName("Test").insertByName("testMod", sDynamicText)
Else
...
Das ist ziemlicher Unsinn. Könnte zwar funktionieren, sollte so aber nicht geschrieben werden. Ein Objekt zu löschen und es dann gleich wieder mit gleichen Namen einzufügen - das wird dir immer Probleme bereiten. Die Objekte (Module) sind schließlich nur Textdateien an speziellen Plätzen, wenn die intern gelöscht werden und gleich wieder mit gleichen Namen geschrieben werden, kann das schon alles mal "haken".
Um das zu lösen, gibt es die Methode ".replaceByName("testMod", sDynamicText)" - die funktioniert sicher und wäre hier die richtige Wahl.
Aber auch hier gilt: Baue keine eigene Bibliothek - sondern ersetze / erzeuge Dir lediglich ein neues Modul in Deiner bestehenden BIbliothek.
Bedenke auch: Dynamisch erzeugte Module werden in der IDE *nicht* aktualisiert - dazu müsstest Du LO/AOO erst schließen und neustarten. Intern jedoch sind neue/veränderte Module sofort aktiv. Verändere also nie etwas manuell in einem dynamisch erzeugten Modul - Du weisst nie, mit was Du da gerade arbeitest;)
VG
Tom