Seite 1 von 1

Allgemeine Frage zur Interfaces und Methoden

Verfasst: Mi, 09.11.2005 14:30
von thinklink
Hallo,


über folgenden Service werden durch Interfaces bestimmt Methoden bereitgestellt.
oXform = createUnoService("com.sun.star.xforms.Model")

Nun möchte ich einige dieser Methoden auf das aktuelle Dokument anwenden
welches ich mir über folgenden Aufruf erzeuge.

oAktuellesDocument = StarDesktop.CurrentComponent


Wenn ich nun Methoden nutzen möchte aus "..xforms.Model" wie kann man da den Bezug auf das aktuelle Dokument herstellen?

oTest = oXform.getBinding(sBinding1) '???


** Funktion ist da nur der Bezug zum aktuellen Dok. fehlt **
oTest = createUnoService("com.sun.star.xforms.Model")
Xray.Xray oTest

oInst = oTest.getDefaultInstance()
oKind = oInst.getFirstChild()
sBind = oKind.getNodeName()
MsgBox sBind
**************************************************



Besten Dank
Gruß Andreas

Verfasst: Mi, 09.11.2005 15:27
von Toxitom
Hey Andreas,

ohne es auszuprobieren - nur aus der Logik heraus:

Versuch, den Service doch direkt an das Dokument zu binden:

Code: Alles auswählen

oAktuellesDocument = StarDesktop.CurrentComponent 
oXform = oAktuellesDokument.createUnoService("com.sun.star.xforms.Model")
Müsste eigentlich funktionieren.

Gruss
Thomas

Laufzeitfehler: Eigenschaft oder Methode nicht gefunden

Verfasst: Mi, 09.11.2005 18:36
von thinklink
Hallo Thomas,

besten Dank für die schnelle Anwort. Hatte es auch schonmal auf die Art versucht - dann bringt er immer folgenden Fehler:

Laufzeitfehler: Eigenschaft oder Methode nicht gefunden

Sub Test
Dim oAktuellesDocument
Dim oXform

oAktuellesDocument = StarDesktop.CurrentComponent
oXform = oDoc.createUnoService("com.sun.star.xforms.Model")
Xray.Xray oXform
End Sub

Verfasst: Mi, 09.11.2005 20:40
von Toxitom
Hallo thinklink,

hmm, na gut. Hab grad mal einen Blick in die API geworfen. Das ist wohl etwas komplizierter.
Leider fehlt mir jetzt die Zeit, mich intensiv damit zu beschäftigen.

Aber: Schau dir mal das Interface "com.sun.star.xforms.XModel" an, dort findest du unter anderem die Methoden getInstance und getInstanceDocument sowie die Methode createBinding. Ich denke, dort musst du suchen.

Gruss
Thomas

Verfasst: Mi, 09.11.2005 21:50
von thinklink
Hallo Thomas,

denke jetzt hab ich´s.....

******************************************************
com.sun.star.xforms.XModel - war richtig...

Über das Interface "XFormsUIHelper1" hab ich alle Methoden die
man für die Arbeit mit XForms benötigt.
******************************************************

und es funktioniert echt gut...

Gruss Andreas