Seite 1 von 1

[Gelöst] Makro in Impress: getController()/Controller liefert scheinbar kein Objekt

Verfasst: Di 20. Okt 2015, 18:15
von arx
Hallo,

ich möchte in Impress bei Erreichen einer bestimmten Folie zur einer anderen Folie zurückspringen (eine Art Dauerschleife). Mit den normalen Hausmitteln von Impress ist das meines Wissens nicht möglich. Deshalb wollte ich ein Makro verwenden. Testweise habe ich dazu das folgende simple Makro angelegt, das - nach meinem Verständnis bisher - die Präsentation starten und direkt zur letzten Folie springen sollte.

Code: Alles auswählen

Global oDoc As Object
Global oPresentation As Object
Global oController As Object

Sub main
oDoc = ThisComponent
oPresentation = oDoc.getPresentation()
oPresentation.Start()
'oController = oPresentation.Controller
oController = oPresentation.getController()
wait 100
'Xray oController
oController.gotoLastSlide()
End Sub
Die Präsentation wird auch gestartet, aber leider wird der gotoLastSlide-Befehl nicht ausgeführt. Ich habe dann versucht mit dem Tool Xray herauszufinden, was nicht stimmt. Laut Xray ist das oController-Objekt null, also nicht vorhanden. Dann kann der Befehl natürlich auch nicht funktionieren. Was mache ich falsch? Viele Dank!

P.S. Ich arbeite unter Ubuntu 14.04 mit LibreOffice 4.2.8.2.

Re: Makro in Impress: getController()/Controller liefert scheinbar kein Objekt

Verfasst: Do 22. Okt 2015, 13:38
von arx
Keiner eine Idee? Vielleicht ist das ein Linux-spezifisches Problem? Ich konnte ausser einer einzigen ähnlichen Anfrage in einem anderen Forum ohne Hinweis auf die Lösung (https://forum.openoffice.org/en/forum/v ... 20&t=57743) keine Informationen dazu finden.

Ich habe mal die angehängte Datei erstellt, die als Minimalbeispiel das Problem demonstriert. Nach Ausführung des Makros sollte - nach meinem Verständnis - die Präsentation starten und auf die letzte Folie (Folie 3) springen. Bei mir startet leider nur die Präsentation.

Re: Makro in Impress: getController()/Controller liefert scheinbar kein Objekt

Verfasst: Do 22. Okt 2015, 13:58
von mikele
Hallo,

zunächst kann ich erstmal nur sagen, dass das Makro unter Windows 7 und LO 4.3.7.2 macht was es soll.
Ich werde es später noch unter Linux testen.

Re: Makro in Impress: getController()/Controller liefert scheinbar kein Objekt

Verfasst: Do 22. Okt 2015, 14:31
von arx
Hallo mikele,

danke für die Rückmeldung, das ist schon mal eine wichtige Information. Ich habe das Makro inzwischen auch noch mal auf einem anderen Ubuntu-Rechner mit LibreOffice ausprobiert und auch dort hat es leider nicht funktioniert.

Re: Makro in Impress: getController()/Controller liefert scheinbar kein Objekt

Verfasst: Do 22. Okt 2015, 16:00
von gogo
versuch's mal so

Code: Alles auswählen

Global oDoc As Object
Global oPresentation As Object
Global oController As Object

Sub main
oDoc = ThisComponent
oPresentation = oDoc.getPresentation()

oPresentation.Start()

do while not oPresentation.isrunning
	wait 100
loop

oController = oPresentation.getController()
oController.gotoLastSlide()

End Sub
hier (LinuxMint17) funktioniert das

Re: Makro in Impress: getController()/Controller liefert scheinbar kein Objekt

Verfasst: Do 22. Okt 2015, 16:14
von arx
Ha, das funktioniert auch bei mir :D Super, vielen Dank!