Strona 1 z 1

nasłuch komórki raz jeszcze...

: sob sty 09, 2016 12:10 pm
autor: babiniec4
witam.
w arkuszu kalkulacyjnym użyłem makra nasłuchu dla zakresu komórek:

sub Wlacz_nasluch()
oSheet=ThisComponent.Sheets.getByIndex(2)
zakres=oSheet.getCellRangeByName("B4:B1004")
oListener = createUnoListener("OOO_","com.sun.star.chart.XChartDataChangeEventListener")
zakres.addChartDataChangeEventListener(oListener)
end sub

sub OOO_chartDataChanged()
'procedura....
end sub

wszystko działa jak należy, jednak po zakończeniu działań na komórkach zakresu nie jestem w stanie wyłączyć nasłuchu.
użyłem poniższego makra jednak nasłuch w komórkach nadal działa...

sub Wylacz_nasluch()
oSheet=ThisComponent.Sheets.getByIndex(2)
zakres=oSheet.getCellRangeByName("B4:B1004")
oListener = createUnoListener("OOO_","com.sun.star.chart.XChartDataChangeEventListener")
zakres.removeChartDataChangeEventListener(oListener)
end sub

proszę o pomoc jak zakończyć nasłuch i móc korzystać z komórek zakresu bez efektu nasłuchu.

aoo 4.1.2 win xp/7/vista/8/10

Re: nasłuch komórki raz jeszcze...

: sob sty 09, 2016 5:32 pm
autor: belstar

Kod: Zaznacz cały

global oListener as object
global zakres as object

sub Wlacz_nasluch()
	if isNull(oListener)then
		oSheet = ThisComponent.Sheets.getByIndex(0)
		zakres = oSheet.getCellRangeByName("B4:B1004")
		oListener = createUnoListener("OOO_","com.sun.star.chart.XChartDataChangeEventListener")
		zakres.addChartDataChangeEventListener(oListener)
	end if
end sub

sub OOO_chartDataChanged(oEvent)
	print "yes ?"
end sub

sub StopListener
   if not isNull(oListener) then
      zakres.removeChartDataChangeEventListener(oListener)
      oListener = nothing
   end if
end sub

'*******************************************************
'w celu wyłączenia nasłuchu uruchom procedurę poniższą
sub OOO_Disposing(oEvent)
   Print "no ?"
   StopListener
end sub
'*******************************************************

Re: nasłuch komórki raz jeszcze...

: sob sty 23, 2016 4:15 pm
autor: babiniec4
[Solved] dziękuję bardzo belstar, działa jak należy :-)