Seite 1 von 1
OnSave per Makro zuweisen
Verfasst: So, 20.01.2013 15:16
von Heike T
Hallo und guten Tag,
ich will mit einem Makro OpenOffice-weit dem Event "OnSave" ein Makro zuweisen.
Bisher habe ich es mit einem Listener versucht
Code: Alles auswählen
MyListener = CreateUnoListener("MyEvent_", "com.sun.star.document.XDocumentEventListener")
Ich gehe davon aus, dass ich den Listener bei dem Broadcaster "com.sun.star.document.XDocumentEventBroadcaster" registrieren muss, weiss aber nicht, wie ich ihn bekommen kann.
Vielen Dank für Eure Hilfe
Heike
Re: OnSave per Makro zuweisen
Verfasst: So, 20.01.2013 19:53
von F3K Total
Hallo,
es gibt unter Extras/Anpassen/Ereignisse genau die Möglichkeit.
Gruß R
Re: OnSave per Makro zuweisen
Verfasst: Di, 22.01.2013 21:34
von Heike T
Hallo R,
danke für die Antwort.
Die Möglichkeit, dass man unter Extras/Anpassen einem Event ein Makro zuweisen kann, ist mir natürlich bekannt.
Diese Einstellungen will ich jedoch, in Abhängigkeit bestimmter, zur Laufzeit veränderbarer Parameter, von einem Makro vornehmen. Die dazu notwendigen Strukturen sind ja, wie ich schon im 1. Beitrag geschrieben habe, vorhanden. Mir ist nur nicht klar, wie ich an den "XDocumentEventBroadcaster" herankomme.
Gruß Heike
Re: OnSave per Makro zuweisen
Verfasst: Mi, 23.01.2013 11:08
von F3K Total
Hi,
dies geht:
Code: Alles auswählen
global olistener
Sub RegisterListener
oListener = CreateUnoListener( "DocumentListener_","com.sun.star.document.XEventListener" )
'ThisComponent.com_sun_star_document_XEventBroadcaster_addEventListener( oListener )
ThisComponent.addEventListener( oListener )
End Sub
Sub RemoveListener
ThisComponent.removeEventListener( oListener )
End Sub
Sub DocumentListener_notifyEvent( o as object )
if o.EventName = "OnSave" then msgbox "Speichern"
end sub
Sub DocumentListener_disposing()
End Sub
Gruß R
Re: OnSave per Makro zuweisen
Verfasst: Do, 24.01.2013 10:30
von Heike T
Hi R,
vielen Dank, das Beispiel funktioniert!
Das heisst, ich muss immer eine Komponente geöffnet haben (das Makro soll bereits bei Programmstart ausgeführt werden).
Heike