Guten Tag,
da ich auch nach langem Suchen und lesen verschiedener FAQs und Dokumentationen, keine zufriedenstellende Antwort auf meine Fragen gefunden habe, werde ich nun hier nachfragen...
Einmal geht es darum, wie ich einen beliebigen Text in der Statusleiste anzeigen kann.. also z.b. einen Zähler.
Das größere Problem ist die Frage wie ich mit einem Makro zwischen 2 Dokumenten wechseln kann...
Also in meinem aktiven Dokument einen TextCursor zu erstellen ist kein Problem... aber wie komme ich an das zweite Dokument ran um auch dort einen TextCursor zu erstellen?
Ich wäre sehr dankbar für Hilfe!
MfG Tagge
Statuszeile und Dokumente wechseln
Moderator: Moderatoren
Hey Tagge,
zum ersten Teil deiner Frage muss ich dir einen Codeteil raussuchen - dauert ein wenig....
Zum zweiten:
Jetzt hast du deine zwei objekte - und die kannst du jeweils direkt ansprechen, Textcursor erzeugen, manipulieren etc. Das ist unabhängig davon, was auf dem Bildschirm gerade zu sehen ist.
Alle Dokumente sind Teil des StarDesktops, dem Wurzelobjekt. Sind die Dinger also schon offen, so kannst du sie auch dort erreichen:
Das folgende Makro liefert dir eine Übersicht aller aktuell offenen Instanzen (OOo Fenster), da musst du eben entsprechende Analysemethoden einsetzen, um deine Dokumente zu identifizieren.
Und so kommst du Stück für Stück an deine Dokumente 
Gruss
Thomas
zum ersten Teil deiner Frage muss ich dir einen Codeteil raussuchen - dauert ein wenig....
Zum zweiten:
Wie meinst du das? Sichtbar? Im Grunde ist jedes Dokument ein eigenes Objekt - und das kannst du beliebig ansprechen. Nehmen wir an, du rufst dein Makro aus einem dritten Dokument auf und lädst dann zwei weiter Dokumente:Das größere Problem ist die Frage wie ich mit einem Makro zwischen 2 Dokumenten wechseln kann...
Code: Alles auswählen
Dim oDoc1 as object, oDoc2 as object, oDoc3 as object
dim sUrl1 as string, sURL2 as string
dim arg()
sUrl1 = convertToURL("d:\Beispiele\testdatei1.ods")
sUrl2 = convertToURL("d:\Beispiele\testdatei2.ods")
oDoc1 = StarDesktop.loadComponentFromURL(sUrl1, "_blank", 0, Arg())
oDoc2 = StarDesktop.loadComponentFromURL(sUrl2, "_blank", 0, Arg())
Alle Dokumente sind Teil des StarDesktops, dem Wurzelobjekt. Sind die Dinger also schon offen, so kannst du sie auch dort erreichen:
Das folgende Makro liefert dir eine Übersicht aller aktuell offenen Instanzen (OOo Fenster), da musst du eben entsprechende Analysemethoden einsetzen, um deine Dokumente zu identifizieren.
Code: Alles auswählen
sub alleFrames
Dim oFrames as object, oFrame as object, i%, s$
oFrames = StarDesktop.getFrames()
For i = 1 to oFrames.getcount()
oFrame = oFrames.getByINdex(i)
s = s & CStr(i-1) & " : " & oFrame.Title & Chr(10)
next
msgbox s
end sub

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Danke schon mal für die Antwort...
War vielleicht etwas ungenau beschrieben....
Mittlerweile funktioniert es mit den verschiedenen Dokumenten aber... war ein bisschen blöd von mir... ich hatte immer Fehler bekommen, war aber nur weil ich nicht dran gedacht hatte, dass er das falsche Fensrter nimmt...
Naja, dann bin ich ja mal gespannt, wie das mit der Statusleiste geht
Bis denn Tagge
War vielleicht etwas ungenau beschrieben....
Mittlerweile funktioniert es mit den verschiedenen Dokumenten aber... war ein bisschen blöd von mir... ich hatte immer Fehler bekommen, war aber nur weil ich nicht dran gedacht hatte, dass er das falsche Fensrter nimmt...
Naja, dann bin ich ja mal gespannt, wie das mit der Statusleiste geht

Bis denn Tagge