Seite 1 von 1
In OO Calc ein Modul durch ein Modul erstellen?
Verfasst: Mi, 23.08.2006 13:32
von $ilent$nooc
tagchen leute.. ich bins wieder
folgendes:
ich habe vor zu testen ob ich im Calc dynamischen code erstellen kann. bevor ich das jedoch testen kann muss ich wissen wie ich ein Modul via programmierung erstellen kann, diesem Modul code hinzufügen kann und dann auch ausführen kann.
weiß evtl. jemand wie ich das bewerkstelligen könnte?
Verfasst: Mi, 23.08.2006 13:52
von Stephan
weiß evtl. jemand wie ich das bewerkstelligen könnte?
nach dem Was Michael sagt:
http://www.dannenhoefer.de/forum/viewth ... =2&thid=20
auf direktem Wege wahrscheinlich garnicht.
Allerdings ist das schon eine Weile her und zwar gibt es hier noch den Hinweis auf den Michael sich bezieht:
http://api.openoffice.org/docs/common/r ... le-ix.html
hier jedoch nicht mehr (was bei meiner lokalen Version dr IDL-Referenz der Fallist):
http://api.openoffice.org/docs/common/r ... ccess.html
Du solltest einfach ausprobieren ob es inzwischen geht.
Gruß
Stephan
Verfasst: Mi, 23.08.2006 14:26
von $ilent$nooc
hehe.. auf diesen urls (bis auf der ersten) war ich schon überall

Verfasst: Do, 24.08.2006 01:17
von komma4
X-Ray schreibt seine Konfigurationsdaten in ein Modul....
Ob Du Code eines so erstellten Moduls nutzen kannst (Funktionen?), weiss ich nicht.
Verfasst: Do, 24.08.2006 08:46
von $ilent$nooc
also...
ich hab es jetzt geschafft eine library zu erstellen! aus der dokumentation konnte ich nicht herauslesen zu welchem objekt die methode 'createLibrary()' gehört!
nun wie dem auch sei, hier der code, sollte ihn jemand mal brauchen:
Code: Alles auswählen
Private Sub AddModule
Dim Document As Object
Dim Container As Object
Dim strPath As String
Dim Args()
' Giving path and open document
strPath = "file:///C:/test/AddToMe.ods"
Document = StarDesktop.loadComponentFromURL(strPath, "_blank", 0, Args())
Document.BasicLibraries.createLibrary("MyNewLib", "", "", "")
' Save changes
Document.storeAsURL(strPath, Args())
' Close document
Document.Close(true)
End Sub ' AddModule()
einfach nicht?
createLibrary ist also eine methode des objektes 'BasicLibraries' !
aber wo bitte steht das?
Doku
das einzige problem welches ich nun noch habe, ist das erstellen eines modules in dieser lib!
zwar gibt es eine funktion die dies angeblich erledigen soll ('addModule') jedoch ist sie als 'abgelehnt' (deprecated) definiert! und selbst wenn sie funktioniert, habe ich keine ahnung zu welchem objekt diese methode nun wieder gehört..
kann mir evtl. jemand weiter helfen?
Verfasst: Do, 24.08.2006 09:33
von ykcim
Du bist an der richtige Stelle, aber mit dem falschen Befehl.
AddModule ist eine Sackgasse. Richtig ist insertbyname.
Code: Alles auswählen
Sub InsertModule
modultext = "REM Test"
LibCon = ThisComponent.BasicLibraries
Lib = LibContainer.createLibrary("NewTest")
Lib.insertByName("Modul1", modultext)
End Sub
mfg
Michael
Verfasst: Do, 24.08.2006 10:09
von $ilent$nooc
@ Michael:
boah danke

es funktioniert!
danke danke danke *g*
*edit:
eine frage hätte ich noch.. und zwar: gibt es verschiedene module? oder kann ich die eigenschaften eines modules irgendwie einstellen? beispielsweise dass CModule ein klassen modul ist und Module ein normales modul ist?
Verfasst: Do, 24.08.2006 10:30
von ykcim
Es gibt keine unterschiedliche Module.
mfg
Michael
Verfasst: Do, 24.08.2006 11:09
von $ilent$nooc
wie kann ich eine klasse schreiben/bauen?
bsp:
'ModuleKlasse
Class KlassenName
End Klass
'StdModule
Sub Main
Dim Instanz As New KlassenName
End Sub
geht das so irgendwie in der art?