von F3K Total » Mi, 25.05.2011 22:17
Hallo Pit,
mit dem Thema habe ich letztens einige Abende verbracht,
hier der Code, der auf einem Calc Sheet funktioniert:
Code: Alles auswählen
global myKeyHandler as object
global myMouseClickHandler as object
sub setup_handler
SetupMouseClickHandler
SetupKeyHandler
end sub
sub remove_handler
RemoveMouseClickHandler
RemoveKeyHandler
end sub
sub SetupMouseClickHandler
oController = thisComponent.currentController
myMouseClickHandler = CreateUnoListener("MouseClickHandler_","com.sun.star.awt.XMouseClickHandler")
oController.addMouseClickHandler(myMouseClickHandler)
end sub
sub RemoveMouseClickHandler
On Error Resume Next
oController = thisComponent.currentController
oController.removeMouseClickHandler(myMouseClickHandler)
On Error Goto 0
end sub
function MouseClickHandler_mousePressed(oMouseEvent) as boolean
MouseClickHandler_mousePressed = false
end function
Function MouseClickHandler_mouseReleased(oMouseEvent) As Boolean
On Error Goto err
if oMouseEvent.ClickCount = 2 then Msgbox "Doppelklick"
err:
On Error Goto 0
MouseClickHandler_mouseReleased = False
End Function
Sub MouseClickHandler_disposing(oMouseEvent)
'
End Sub
sub SetupKeyHandler
oController = thisComponent.currentController
myKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")
oController.addKeyHandler(myKeyHandler)
end sub
sub RemoveKeyHandler
oController = thisComponent.currentController
oController.removeKeyHandler(myKeyHandler)
end sub
Sub KeyHandler_disposing(oKeyEvent)
'
End Sub
function KeyHandler_keyPressed(oKeyEvent) as boolean
KeyHandler_keyPressed = false
if oKeyEvent.KeyCode=1280 then msgbox "Return-Taste"
end function
Function KeyHandler_KeyReleased(oKeyEvent) As Boolean
KeyHandler_KeyReleased = false
End Function
Wenn man jetzt "setup_handler" unter Extras/Anpassen/Ereignisse auf "Dokument öffnen" und "remove_handler" auf "Dokument wird geschlossen" legt, funzt es.
Viel Spaß damit
Gruß R
Hallo Pit,
mit dem Thema habe ich letztens einige Abende verbracht,
hier der Code, der auf einem Calc Sheet funktioniert:
[code]global myKeyHandler as object
global myMouseClickHandler as object
sub setup_handler
SetupMouseClickHandler
SetupKeyHandler
end sub
sub remove_handler
RemoveMouseClickHandler
RemoveKeyHandler
end sub
sub SetupMouseClickHandler
oController = thisComponent.currentController
myMouseClickHandler = CreateUnoListener("MouseClickHandler_","com.sun.star.awt.XMouseClickHandler")
oController.addMouseClickHandler(myMouseClickHandler)
end sub
sub RemoveMouseClickHandler
On Error Resume Next
oController = thisComponent.currentController
oController.removeMouseClickHandler(myMouseClickHandler)
On Error Goto 0
end sub
function MouseClickHandler_mousePressed(oMouseEvent) as boolean
MouseClickHandler_mousePressed = false
end function
Function MouseClickHandler_mouseReleased(oMouseEvent) As Boolean
On Error Goto err
if oMouseEvent.ClickCount = 2 then Msgbox "Doppelklick"
err:
On Error Goto 0
MouseClickHandler_mouseReleased = False
End Function
Sub MouseClickHandler_disposing(oMouseEvent)
'
End Sub
sub SetupKeyHandler
oController = thisComponent.currentController
myKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")
oController.addKeyHandler(myKeyHandler)
end sub
sub RemoveKeyHandler
oController = thisComponent.currentController
oController.removeKeyHandler(myKeyHandler)
end sub
Sub KeyHandler_disposing(oKeyEvent)
'
End Sub
function KeyHandler_keyPressed(oKeyEvent) as boolean
KeyHandler_keyPressed = false
if oKeyEvent.KeyCode=1280 then msgbox "Return-Taste"
end function
Function KeyHandler_KeyReleased(oKeyEvent) As Boolean
KeyHandler_KeyReleased = false
End Function[/code] Wenn man jetzt "setup_handler" unter Extras/Anpassen/Ereignisse auf "Dokument öffnen" und "remove_handler" auf "Dokument wird geschlossen" legt, funzt es.
Viel Spaß damit
Gruß R