Seite 1 von 1
ole-objekt listner
Verfasst: So, 08.11.2015 09:57
von sobby1969
Hallo,
ich habe ein text Document in dem als ole-objekt eine calc tabelle eingefügt ist. Nun möchte ich wenn die calc tabelle aktiviert wird automatisch
ein Listner aktiviert wird.
Kann mir da mal jemand helfen. eventuell geht das ja über einen Eventlistener.
Danke im vorraus für eure Hilfe
Gruß Sobby
Re: ole-objekt listner
Verfasst: So, 08.11.2015 11:39
von Stephan
Muss es denn ein extra registrierter Listener sein, das Ereignis das das Objekt angeklickt wird lässt sich doch direkt unter dem Objekt abfangen (zuweisen unter Kontextmenü des Tabellenobjekts -->Objekt... -->Register "Makro")
Beispiel hängt an.
Gruß
Stephan
Re: ole-objekt listner
Verfasst: So, 08.11.2015 12:10
von F3K Total
Hi,
da mir mir nun schon die Mühe gemacht habe, möchte ich Euch eine Lösung mit
StateChangeListener nicht vorenthalten.
Code: Alles auswählen
global oStateChangeListener
Sub Listener_erzeugen
odoc = Thiscomponent
opage = odoc.drawpage
for i = 0 to opage.count - 1
oshape = oPage(i)
if oShape.Name = "CalcTabelle1" then
oEXCOEO = oShape.ExtendedControlOverEmbeddedObject
oStateChangeListener = CreateUnoListener( "StateChangeListener_", "com.sun.star.embed.XStateChangeListener")
oEXCOEO.addStateChangeListener(oStateChangeListener)
endif
next i
End Sub
Sub Listener_entfernen
odoc = Thiscomponent
opage = odoc.drawpage
for i = 0 to opage.count - 1
oshape = oPage(i)
if oShape.Name = "CalcTabelle1" then
oEXCOEO = oShape.ExtendedControlOverEmbeddedObject
oEXCOEO.removeStateChangeListener(oStateChangeListener)
endif
next i
End Sub
Sub StateChangeListener_changingState(oEvent,nOldState,nNewState)
'(com.sun.star.embed.EmbedStates.UI_ACTIVE)LOADED = 0,RUNNING = 1,ACTIVE = 2,INPLACE_ACTIVE = 3,UI_ACTIVE = 4
if nNewState = 4 then
Print "Calc wechselt in den Bearbeitungsmodus"
else
Print "Calc verläßt den Bearbeitungsmodus"
endif
End Sub
Sub StateChangeListener_stateChanged(oEvent,nOldState,nNewState)
'(com.sun.star.embed.EmbedStates.UI_ACTIVE)LOADED = 0,RUNNING = 1,ACTIVE = 2,INPLACE_ACTIVE = 3,UI_ACTIVE = 4
if nNewState = 4 then
Print "Calc im Bearbeitungsmodus"
else
Print "Calc nicht mehr im Bearbeitungsmodus"
endif
End Sub
Sub StateChangeListener_disposing
end sub
Gruß R