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 :lol:

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 :D 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?