nasłuch komórki raz jeszcze...

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

nasłuch komórki raz jeszcze...

Post 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
Apache OpenOffice 4.1.5 na Windows 10
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

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

Post 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
'*******************************************************
LibreOffice 5.1.2.2 Ubuntu 16 LTS
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

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

Post autor: babiniec4 »

[Solved] dziękuję bardzo belstar, działa jak należy :-)
Apache OpenOffice 4.1.5 na Windows 10
ODPOWIEDZ