Zelle des geklickten Buttons auslesen ?

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: Zelle des geklickten Buttons auslesen ?

von juve » Do, 20.10.2005 18:50

hab den code hier gefunden: viewtopic.php?t=3165

Code: Alles auswählen

Global oListener As Object
Global arow as Integer
Global acol as Integer
Global bBackjump as Boolean

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

Sub ClicListener_selectionChanged(oEvent)
  Dim oSelection As Object
  Dim bTest as Boolean
  oSelection = oEvent.source.selection
  if oSelection.supportsService ("com.sun.star.sheet.SheetCell") then
    bTest = True
    If oSelection.CellAddress.Row = arow Then
      If oSelection.CellAddress.Column = acol Then
        bTest = false
        If bBackjump Then
          bBackjump = false
          Exit Sub
        endif
      end if
    end if
    bBackjump = bTest
    arow = oSelection.CellAddress.Row
    acol = oSelection.CellAddress.Column
    If oSelection.string = "button" Then
      mach_was(arow,acol)
    end if
  end if
End Sub

Sub mach_was(row as Integer,col as Integer)
      print "mache was mit X:"+row+" Y:"+col
End Sub
klappt jetzt alles wie gewünscht. ich klicke auf das Wort: "button" und dan macht OO "was".

Danke für eure Hilfe

von Toxitom » Do, 20.10.2005 08:35

Hey Juve,
kann man die Zelle eines "LastUsedControl" auslesen ?
vielleicht gehts auch über den mousecursor und die Zelle über der er gerade ist ?
Na, dieser Weg ist genauso umständlich. Theoretisch ginge das: Über den Controller die Viewansicht bearbeiten. Diese "kennt" die Koordinaten des aktuellen Mauszeigers. Jetzt müsstest du die Koordinaten der aktuellen Viewansicht auslesen - und dann vergleichen.... extrem aufwendig.

Aber - vielleicht mal eine andere Vorgehensweise: Du könntest einen "Listener" schreiben, der auf die aktivierung einer Zelle "reagiert". Dann könntest du statt eines Buttons die Zelle als "Button" nutzen, den Text reinschrieben, mit einer entsprechenden Hintergrundfarbe formatieren etc. Durch Klick darauf wird die Zelle aktiv, der Listener springt an, der vergleicht jetzt, ob es sich um einen "Button" handelt, zum Beispiel durch Vergleich der Hintergrundfarbe - und startet dann das Makro. Dadurch, dass du jetzt die aktive Zelle hast, ist das jetzt alles ohne größeren Aufwand möglich.

Hinsichtlich des Listeners musst du mal das Forum durchsuchen. Da gab es mal irgendetwas, das beim Klick auf eine Zelle irgentetwas geschehen sollte - und da wurde der Listener besprochen.

Gruss
Thomas

von juve » Mi, 19.10.2005 23:05

nee, das ist keine gute Lösung, denke ich. Ich will den Button mit copy/paste kopieren.

kann man die Zelle eines "LastUsedControl" auslesen ?
vielleicht gehts auch über den mousecursor und die Zelle über der er gerade ist ?

von Toxitom » Mi, 19.10.2005 15:49

Hey Juve,
weiss jemand wie man ich die Zelle eines Buttons auslesen kann, nachdem er gedrückt wurde.
Mit ActiveCell... gehts nicht, weil beim click auf nen Button die ActiveCell nicht wechselt.
Das wirtd schwierig. Der Button ist nämlich kein Element der Zelle, sondern befindet sich auf der Drawpage, lediglich seine Verankerung kann auf die Zelle verweisen. Das dann aber ist eine Berechnung des aktiven Controllers - in der ViewAnsicht. Du müsstest alos zunächst die Position des Buttons bestimmen, dann die Position der Zellen, und jetzt ein Übereinstimmung suchen. Da ist es einfacher, für jeden Button eine eigene Routine zu schreiben, die lediglich die Hauptroutine aufruft., welche dann die jeweiligen Zellen Kopiert. Der Vorteil dieser Methode liegt auf der Hand: Du kannst der Hauptfunktion als Parameter gleich die Zelladressen übergeben.

Gruss
Thomas

Zelle des geklickten Buttons auslesen ?

von juve » So, 16.10.2005 10:47

Hallo,
weiss jemand wie man ich die Zelle eines Buttons auslesen kann, nachdem er gedrückt wurde.
Mit ActiveCell... gehts nicht, weil beim click auf nen Button die ActiveCell nicht wechselt.

Ich will mit dem Button die Daten, die in den Feldern über ihm stehen, an eine andere Stelle kopieren und den Button dabei an verschiedenen Stellen im Dokument verwenden, ohne dass ich für jede Kopie eine Sub-Routine erstellen muss.

Danke,
Juve

Nach oben