Impress: Bild vergrößern in Präsentation

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

Moderator: Moderatoren

Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Impress: Bild vergrößern in Präsentation

Beitrag von Steffan »

Hallo zusammen,

ich möchte während einer laufenden Präsentation die Möglichkeit haben, Bilder auf Bildschirmhöhe zu vergrößern.
Dazu habe ich folgendes gemacht:
- Makro, dass das ausgewählte Objekt vergrößert (funktioniert) s.u.
- den bewussten Bildern, die vergrößert werden sollen mittels >Bildschirmpräsentation>Interaktion... das Makro zugeordnet

Jetzt ist es leider so, dass die Objekte bei laufender Präsentation beim Draufklicken offenbar nicht selektiert werden.
Hat jemand einen Ansatz wie ich mein Problem lösen kann?

Beste Dank im Voraus,
Steffan

Code: Alles auswählen

Sub maxImage
	'GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
	
	oDoc = ThisComponent
	oPage = oDoc.CurrentController.CurrentPage
	pageWidth = oPage.width
	pageHeight = oPage.Height
	
	oSelect = oDoc.CurrentSelection(0)
	if oSelect is Nothing then msgbox "nichts gewählt" : Exit Sub
	
	dim oNewPos as new com.sun.star.awt.Point
	dim oNewSize as new com.sun.star.awt.Size
	dim oOldPos as new com.sun.star.awt.Point
	dim oOldSize as new com.sun.star.awt.Size
	
	oOldPos = oSelect.getPosition
	oOldSize = oSelect.getSize
	sizeProp= oOldSize.Width / oOldSize.Height
	 
	oNewPos.X=0 : oNewPos.Y=0
	'auf Bildhöhe anpassen
	oNewSize.Height = pageHeight
	oNewSize.Width = pageHeight*sizeProp
	
	oSelect.setPosition(oNewPos)
	oSelect.setSize(oNewSize)
End Sub
Axel Richter
****
Beiträge: 159
Registriert: So, 17.10.2010 16:54

Re: Impress: Bild vergrößern in Präsentation

Beitrag von Axel Richter »

Hallo,
Steffan hat geschrieben:Jetzt ist es leider so, dass die Objekte bei laufender Präsentation beim Draufklicken offenbar nicht selektiert werden.
Ja, und offensichtlich gibt es keine Möglichkeit, irgendwie an das Objekt zu kommen, welches das OnClick - Makro ausgelöst hat.
Steffan hat geschrieben:Hat jemand einen Ansatz wie ich mein Problem lösen kann?
Das Beste, was ich bisher erreicht habe, ist, die Bilder per Name zu identifizieren und je Bild ein eigenes Makro aufzurufen. Siehe anhängende Datei. Die Shapes(Bilder) müssen mit Namen versehen werden (Rechtsklick - Kontextmenü Name...) und jeweils ein eigenes Interaktion... - Makro haben. Die Namen müssen mit den in den Interaktion... - Makros angegebenen bildNamen identisch sein.

Eventuell weiß ja noch jemand Anderes, wie man an das Objekt kommt, welches das OnClick - Makro ausgelöst hat. Dann würde das Ganze natürlich eleganter zu lösen sein.

viele Grüße

Axel
Dateianhänge
ImpressInteractionMacro.odp
(13.22 KiB) 376-mal heruntergeladen
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Re: Impress: Bild vergrößern in Präsentation

Beitrag von Steffan »

Hallo Axel,

erst mal vielen Dank für Deine Antwort.
Die Variante mit EInzelmakros hatte ich mir auch schon überlegt, nicht schön aber mit Schreibarbeit machbar. Vielleicht äußert sich hier ja noch ein Wissender, der weiß, wie man das auslösende Objekt ermittelt.
Ziemlich gut fand ich in deinem Beispiel das Zwischenspeichern der Bildwerte in Benutzerattributen. Soweit hatte ich noch nicht gedacht. Jedenfalls habe ich diese Lösung gleich mal übernommen. Problematisch ist für mich allerdings, dass ein Neuaufbau der Seite nötig ist. Du löst das, indem Du eine Seite vor und wieder zurückspringst. Das funktioniert nicht wie gewünscht, wenn die Bilder auf der Seite nach und nach eingeblendet werden, denn dann stehst Du nach dem Vor-/Rücksprung wieder am Seitenanfang da. Gibt es dafür noch eine Lösung?

Beste Grüße,
Steffan
Axel Richter
****
Beiträge: 159
Registriert: So, 17.10.2010 16:54

Re: Impress: Bild vergrößern in Präsentation

Beitrag von Axel Richter »

Hallo Steffan,
Steffan hat geschrieben:Du löst das, indem Du eine Seite vor und wieder zurückspringst. Das funktioniert nicht wie gewünscht, wenn die Bilder auf der Seite nach und nach eingeblendet werden, denn dann stehst Du nach dem Vor-/Rücksprung wieder am Seitenanfang da. Gibt es dafür noch eine Lösung?
Also ich glaube nicht, dass man Benutzerdefinierte Animation und die OnClick-Interaktion wirklich sinnvoll kombinieren kann, wenn OnClick die Shapes manipuliert werden, die auch benutzerdefiniert animiert werden; und das nicht nur, wenn da OnClick ein Makro läuft. Auch, wenn du OnClick zu einer Folie springst und dann wieder zurück, hättest Du das selbe Problem.

Die Seite, welche die Klickbilder enthält, darf halt keine einzelnen benutzerdefinierten Animationen ausführen. Da ich von den Gezappel eh nicht viel halte, würde mich das auch nicht weiter stören ;-).

Folienübergänge sind übrigens kein größeres Problem. Die werden zwar auch immer wieder aufgerufen. Das sieht aber gar nicht Mal so schlecht aus.

Allerdings ist mir noch ein Fehler aufgefallen. Natürlich darf ich die page nicht aus ThisComponent.CurrentController.CurrentPage ermitteln, denn das zeigt immer auf die Seite, von der aus die Präsentation gestartet wurde. Die page muss aus ThisComponent.Presentation.Controller.CurrentSlide ermittelt werden. Das ist dann die Seite, die man gerade sieht.

viele Grüße

Axel
Dateianhänge
ImpressInteractionMacro.odp
(13.84 KiB) 155-mal heruntergeladen
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Re: Impress: Bild vergrößern in Präsentation

Beitrag von Steffan »

Hallo Axel,
Axel Richter hat geschrieben: Also ich glaube nicht, dass man Benutzerdefinierte Animation und die OnClick-Interaktion wirklich sinnvoll kombinieren kann, wenn OnClick die Shapes manipuliert werden, die auch benutzerdefiniert animiert werden; und das nicht nur, wenn da OnClick ein Makro läuft.
also zumindest in meinem Fall schien es mir sinnvoll. Folgendes Szenario: Auf einer Folie gibt es einen seitenfüllenden Lageplan. Nach und nach werden Fotos mit Markierung der einzelnen Fotostandorte eingeblendet. Dazwischen mein Gelaber. Jetzt wollte ich die Möglichkeit haben, bei Rückfragen eins oder mehrere Fotos durch Klick zu vergrößern und danach an der selben Stelle in meiner Präsentation weitermachen. Das ganze übrigens ohne Gezappel ;)
Jetzt habe ich mir erst einmal so geholfen, dass ich die Sache auf mehrere Folien verteile (erste Folie mit den benutzerdefinierten Animationen, die die Fotos einblenden, zweite Folie: Endzustand mit den den Fotos zugeordneten Makros). Da funktioniert, bläht allerdings die Datei unnötig auf, da ich die Fotos doppelt speichere.

Jedenfalls noch mal herzlichen Dank für Deine Hilfe,
Steffan.
Antworten