Makro auslösen, wenn man auf das Dokument klickt

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: Makro auslösen, wenn man auf das Dokument klickt

Re: Makro auslösen, wenn man auf das Dokument klickt

von Jonny1 » Sa, 19.01.2013 20:15

Ich habe es gefunden:

Code: Alles auswählen

REM  *****  BASIC  *****

Option Explicit

Global oDocView As Object
Global oMouseClickHandler As Object

Sub RegisterMouseClickHandler
  oDocView = ThisComponent.currentController
  oMouseClickHandler = _
  createUnoListener("MyApp_", "com.sun.star.awt.XMouseClickHandler")
'  writedbginfo oMouseClickHandler
  oDocView.addMouseClickHandler(oMouseClickHandler)
End Sub

Sub UnregisterMouseClickHandler
  on error resume next
  oDocView.removeMouseClickHandler(oMouseClickHandler)
  on error goto 0
End Sub

Sub MyApp_disposing(oEvt)
End Sub

Function MyApp_mousePressed(oEvt) As Boolean
  MyApp_mousePressed = False
End Function

Function MyApp_mouseReleased(oEvt) As Boolean
Dim sMsg As String
  With oEvt
    sMsg = sMsg & "Modifiers = " & .Modifiers & Chr(10)
    sMsg = sMsg & "Buttons = " & .Buttons & Chr(10)
    sMsg = sMsg & "X = " & .X & Chr(10)
    sMsg = sMsg & "Y = " & .Y & Chr(10)
    sMsg = sMsg & "ClickCount = " &  .ClickCount & Chr(10)
    sMsg = sMsg & "PopupTrigger = " & .PopupTrigger '& Chr(10)
    'sMsg = sMsg & .Source.dbg_Methods  
  End With
  
  ThisComponent.text.string = sMsg
  
  MyApp_mouseReleased = False
End Function

Re: Makro auslösen, wenn man auf das Dokument klickt

von Jonny1 » Sa, 19.01.2013 19:51

Dieser Hinweis ist Gold wert. Im Handbuch "OOME_3_0_deutsch.odt" ist davon nichts zu finden. Aber im Internet. Oder hast du einen besseren Vorschlag? Kennst du ein besseres Handbuch als "OOME_3_0_deutsch.odt"?

Vielen Dank!

Re: Makro auslösen, wenn man auf das Dokument klickt

von F3K Total » Sa, 19.01.2013 17:17

Hallo Jonny,
Jonny1 hat geschrieben:was ich mit OO-Writer öffne
genau, und das war mir nicht klar, hätte ja auch ein Calc, Base ...-Dokument sein können.
fyi: Es gibt auch noch den "com.sun.star.awt.XMouseClickHandler" der detektiert tatsächlich das Klicken.

Gruß R

Re: Makro auslösen, wenn man auf das Dokument klickt

von Jonny1 » Sa, 19.01.2013 16:30

Ich meinte irgendein Blatt, was ich mit OO-Writer öffne.

Aber die Lösung habe ich im Handbuch gefunden:

Code: Alles auswählen

Global vSelChangeListener   'Muss global sein
Global vSelChangeBroadCast

'Zum Start der Überwachung führen Sie dieses Makro aus.

Sub StartListeningToSelChangeEvents
  Dim sPrefix$
  Dim sService$
  sPrefix = "sel_change_"
  sService = "com.sun.star.view.XSelectionChangeListener"
  
  REM Das Anmeldungsobjekt zur Beobachtung der Auswahländerungen
  REM ist der CurrentController
  vSelChangeBroadCast = ThisComponent.getCurrentController
    
  'Erzeugt einen Listener zum Abfangen der Auswahländerungs-Ereignisse
  vSelChangeListener = CreateUnoListener(sPrefix, sService)
    
  'Registriert den Listener beim Dokument-Controller
  vSelChangeBroadCast.addSelectionChangeListener(vSelChangeListener)
End Sub

Sub StopListeningToSelChangeEvents
  ' Entfernt den Listener
  vSelChangeBroadCast.removeSelectionChangeListener(vSelChangeListener)
End Sub

Sub sel_change_selectionChanged(vEvent)
  Dim vCurrentSelection As Object
   vCurrentSelection =  vEvent.source
   Print "Anzahl der selektierten Bereiche  = " &_
          vCurrentSelection.getSelection().getCount()
End Sub
Entschuldige bitte, daß ich das Handbuch erst danach zu Rate gezogen habe.

Re: Makro auslösen, wenn man auf das Dokument klickt

von F3K Total » Sa, 19.01.2013 15:08

Guten Tag Jonny,
was für ein Dokument meinst Du?

Gruß R

Makro auslösen, wenn man auf das Dokument klickt

von Jonny1 » Sa, 19.01.2013 14:36

Ich möchte ein Makro auslösen, wenn ich auf das Dokument - also nicht auf ein Button oder sonst ein anderes Element, sondern auf das Blatt, in das ich schreibe - klicke.

Kann mir jemand helfen?

Vielen Dank

Nach oben