🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

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

Alles zur Programmierung im LibreOffice.
Antworten
arx
Beiträge: 4
Registriert: Di 20. Okt 2015, 18:02

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

Beitrag von arx » Di 20. Okt 2015, 18:15

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.
Zuletzt geändert von arx am Do 22. Okt 2015, 16:19, insgesamt 1-mal geändert.

arx
Beiträge: 4
Registriert: Di 20. Okt 2015, 18:02

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

Beitrag von arx » Do 22. Okt 2015, 13:38

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.
Dateianhänge
MacroTest.odp
(16.27 KiB) 142-mal heruntergeladen

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

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

Beitrag von mikele » Do 22. Okt 2015, 13:58

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.
Gruß,
mikele

arx
Beiträge: 4
Registriert: Di 20. Okt 2015, 18:02

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

Beitrag von arx » Do 22. Okt 2015, 14:31

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.

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

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

Beitrag von gogo » Do 22. Okt 2015, 16:00

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
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

arx
Beiträge: 4
Registriert: Di 20. Okt 2015, 18:02

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

Beitrag von arx » Do 22. Okt 2015, 16:14

Ha, das funktioniert auch bei mir :D Super, vielen Dank!


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten