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
ole-objekt listner
Moderator: Moderatoren
Re: ole-objekt listner
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
Beispiel hängt an.
Gruß
Stephan
- Dateianhänge
-
- Ole-Objekt mit Makro.odt
- (16.26 KiB) 62-mal heruntergeladen
Re: ole-objekt listner
Hi,
da mir mir nun schon die Mühe gemacht habe, möchte ich Euch eine Lösung mit StateChangeListener nicht vorenthalten.
Gruß R
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
- Dateianhänge
-
- StateChangeListener_ Calc_in Writer_eingebettet_embedded_.odt
- (17.76 KiB) 70-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO