Listener überwachen nur einer Spalte

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Listener überwachen nur einer Spalte

Re: Listener überwachen nur einer Spalte

von clag » Di, 03.11.2009 09:13

Moin Leutz

hey ich will doch nicht eure Konto Nummern haben :lol:

ich möchte doch nur von euch wissen wie der Code auszusehen hat
damit ein Listener einen definierten Bereich überwacht

nach stunden googlen habe ich folgendes Konkrete zum Thema gefunden
http://www.mail-archive.com/users@de.op ... 33703.html
'Zellbereich:
Sub Listener_registrieren()
objekt = ThisComponent.Sheets(0).GetCellRangeByName("A1:E10")
oCrngData = CreateUnoListener("CrngListener_","com.sun.star.util.XModifyListener")
objekt.addModifyListener(oCrngData)
End Sub
aber wenn ich den code aus Turtles47 Beispiel so abändere ändert sich leider nichts am verhalten
und der Listener reagiert weiter auf alle Zelle der Tabelle
Sub initializeListener
oListener = CreateUnoListener( "ClicListener_", "com.sun.star.view.XSelectionChangeListener" )
oDocument = ThisComponent.Sheets(0).GetCellRangeByName("E1:E10")
oDocument.getCurrentController.addSelectionChangeListener(oListener)
End Sub
seit doch nicht so grausam zu mir und lasst mich wissen wie es richtig gemacht wird :roll:

ich wüsste auch noch gern ob der Listener unterscheiden kann
ob eine Zelle den Focus(Cursor) erhält oder verliert
wenn ja wie man da auswertet
also praktisch zwei Makros ausführen
ein Makro mit der Adresse für die Zelle mit Focusverlust
und ein Makro mit Adresse der Zelle die den Focus bekommt ?

Im Idealfall sollte der Listener nur in einem definierten Bereich aktiv sein
und unterscheiden können ob eine Zelle den Focus erhält oder verliert

Ich hoffe ihr lasst mich nicht als StarBasic DAU sterben :wink:

Listener überwachen nur einer Spalte

von clag » Mo, 02.11.2009 18:34

Hallo Leute

von Turtle47 habe ich diesen Code um in einer Tabelle Zellen zu überwachen

wie kann ich die Überwachung einer Spalte oder einen Bereich definieren
wo und was müsste ich da noch neuen oder anderen Code einfügen
zB ganze Spalte oder ein Bereich F10:E1000

Code: Alles auswählen

Sub initializeListener
	oListener = CreateUnoListener( "ClicListener_", "com.sun.star.view.XSelectionChangeListener" )
	oDocument = ThisComponent
	oDocument.getCurrentController.addSelectionChangeListener(oListener)
End Sub

Sub remove_Listener
	'Den Listener zu deaktivieren funktioniert leider nicht.
	'Dieser wird aber automatisch beendendet wenn das Dok geschlossen wird
	'remove the listener from controller
	'oDocument = ThisComponent   
	'oDocument.removeSelectionChangeListener(oListener)
End Sub


Sub ClicListener_selectionChanged(oEvent)
	Dim Selection As Object
	Dim bTest as Boolean
'	wait 200
	oSelection = oEvent.source.selection
	if oSelection.supportsService ("com.sun.star.sheet.SheetCell") then
	Doc = thisComponent
	mySheet = Doc.Sheets(0)
	oResentSelectedROw = oSelection.CellAddress.row
	oResentSelectedColnum = oSelection.CellAddress.Column
	CellString = oSelection.string
    if len (cellstring) > 0 then
    "DIESE AKTION"	
	end if
	end if
End Sub
schon mal Danke vorweg

Nach oben