Wie kann man eine erstellte Komponente wiederfinden?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

MyFairTux
*
Beiträge: 19
Registriert: Mo, 19.06.2006 13:00

Wie kann man eine erstellte Komponente wiederfinden?

Beitrag von MyFairTux »

Hallo,

Ich habe aus einem Calc-Dokument heraus ein Writer-Dokument aus einer Vorlage heraus erstellt:

Code: Alles auswählen

oDoc = StarDesktop.loadComponentFromURL(sVorlage, "Textdokument", 0, args())
Dieses möchte ich nun in anderen Subs ansprechen. Ich habe es bisher folgendermaßen versucht:

Code: Alles auswählen

  oFrames = StarDesktop.getFrames()
  For i = 1 to oFrames.getcount()
    oFrame = oFrames.getByIndex(i-1)
    s = s & CStr(i-1) & " : " & oFrame.getName() & Chr(10)
  Next
  MsgBox s
Leider wird mir der vergebene Framename "Textdokument" nicht angezeigt, dabei steht in der API-Doku folgendes:

setName
[oneway] void
setName( [in] string aName );

Description
sets the name of the frame.

Normally the name of the frame is set initially (e.g. by the creator). The name of a frame will be used for identifying it if a frame search was started. These searches can be forced by:

* XFrame::findFrame()
* XDispatchProvider::queryDispatch()
* XComponentLoader::loadComponentFromURL()

Note: Special targets like "_blank", "_self" etc. are not allowed. That's why frame names shouldn't start with a sign "_".
Parameter aName
the new programmatic name of this frame


Auch ein Versuch mit

Code: Alles auswählen

oFrame = oFrames.findFrame ("Textdokument", 0)
brachte leider kein Ergebnis.

Wo liegt mein Fehler?

Viele Grüße,
Chris
MyFairTux
*
Beiträge: 19
Registriert: Mo, 19.06.2006 13:00

Re: Wie kann man eine erstellte Komponente wiederfinden?

Beitrag von MyFairTux »

Ich antworte mir mal selbst ;-)

Nachdem ich den passenden Begriff zur Suche eingegeben habe, fand sich, dass es sich wohl tatsächlich um einen Fehler in "loadComponentFromURL" handelt.
Man muss OO wohl zu seinem Glück zwingen und den Framenamen explizit setzen, also so:

Code: Alles auswählen

oDoc = StarDesktop.loadComponentFromURL(sVorlage, "Textdokument", 0, args())
oDoc.getCurrentController.Frame.Name = "Textdokument"
Danach findet auch "findFrame" den gesuchten Frame :-)

Wo meldet man solche Fehler eigentlich am besten?

Chris.
hawkhunter2002
**
Beiträge: 32
Registriert: So, 25.02.2007 09:11
Wohnort: Ingolstadt

Re: Wie kann man eine erstellte Komponente wiederfinden?

Beitrag von hawkhunter2002 »


Wo meldet man solche Fehler eigentlich am besten?
hier :D

Gruß

Hawk
OOO Basic Programmierers best Friend XRay-Tool
Antworten