Revisión a fecha de 03:32 27 may 2015; Salva (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Eventos del ratón o dispositivo apuntador en OOo Basic


Apache OpenOffice Basic reconoce los siguientes eventos del ratón o dispositivo apuntador:


Evento Descripción

Ratón entra (Ratón dentro)

El usuario ha movido el ratón desde fuera hacia el interior del objeto, entrando en el área del mismo. X e Y almacenan la posición de entrada del cursor.

Mover ratón por medio del teclado

El usuario arrastra el ratón mediante pulsaciones de una tecla

Movimiento de ratón

El usuario mueve el ratón sobre el objeto. X e Y almacenan la posición actual del cursor.

Botón del ratón pulsado

El usuario ha pulsado un botón

Botón del ratón soltado

El usuario ha soltado el botón pulsado

Ratón sale (Ratón fuera)

El usuario ha movido el ratón desde el interior del objeto hacia afuera, saliendo del área del mismo. X e Y almacenan la posición de salida del cursor.


Señal Nota.png

El evento Botón del ratón pulsado también se utiliza para notificar las solicitudes del menú contextual del control. En este caso, la propiedad PopupTrigger toma el valor TRUE.

Si la solicitud se hace pulsando el botón derecho del ratón, el evento se activará dos veces: una por la solicitud del menú contextual (PopupTrigger toma el valor TRUE), y otra por el clic del ratón (PopupTrigger toma el valor FALSE).

Si sólo interesa controlar el clic el procedimiento deberá ignorar la llamada cuando PopupTrigger es TRUE


La estructura de los eventos asociados al objeto se definen en la estructura com.sun.star.awt.MouseEvent (ver Struct MouseEvent) que proporciona la siguiente información:


Propiedad Tipo Descripción

Buttons

Short El botón que ha sido presionado, indicado por una o más de las constantes definidas en la enumeración com.sun.star.awt.MouseButton (ver Constants group MouseButton):
LEFT Botón izquierdo del ratón
RIGHT Botón derecho del ratón
MIDDLE Botón central del ratón

X

Long Coordenada X del ratón, medida en píxeles desde la esquina superior izquierda del control

Y

Long Coordenada Y del ratón, medida en píxeles desde la esquina superior izquierda del control

ClickCount

Long Número de clics asociados con el evento del ratón. Si Apache OpenOffice responde lo suficientemente rápido, ClickCount puede mostrar un valor 1 cuando se ha realizado un doble clic.


Los siguientes ejemplos examinan la posición del ratón, qué botón se ha pulsado, y cuantos clics se han realizado, y depositan la información en un control Label del diálogo. Deben asignarse a los eventos correspondientes de un control (puede ser la misma etiqueta):


Sub Raton_BotonPulsado( oEv As Object )
'--------------------------------------------------------------------------
   Dim Msg As String
   If oEv.PopupTrigger Then Exit Sub ' PopupTrigger
   Msg = IIf(oEv.ClickCount = 1,"C", "Doble c") & "lic botón "   
   Select Case oEv.BUTTONS
   Case com.sun.star.awt.MouseButton.LEFT
      Msg = Msg & "izquierdo"
   Case com.sun.star.awt.MouseButton.RIGHT
      Msg = Msg & "derecho"
   Case com.sun.star.awt.MouseButton.MIDDLE
      Msg = Msg & "central"
   End Select
   Msg = Msg & " pulsado X= " & oEv.X & " Y=" & oEv.Y
   oEv.Source.Context.getControl("Label3").Text = Msg
End Sub


Sub Raton_BotonSoltado( oEv As Object )
'--------------------------------------------------------------------------
   Dim Msg As String
   If oEv.PopupTrigger Then Exit Sub ' PopupTrigger
   Msg = IIf(oEv.ClickCount = 1,"C", "Doble c") & "lic botón "   
   Select Case oEv.BUTTONS
   Case com.sun.star.awt.MouseButton.LEFT
      Msg = Msg & "izquierdo"
   Case com.sun.star.awt.MouseButton.RIGHT
      Msg = Msg & "derecho"
   Case com.sun.star.awt.MouseButton.MIDDLE
      Msg = Msg & "central"
   End Select
   Msg = Msg & " soltado X= " & oEv.X & " Y=" & oEv.Y
   oEv.Source.Context.getControl("Label3").Text = Msg
End Sub


Sub Raton_Mueve( oEv As Object )
'--------------------------------------------------------------------------
   oEv.Source.Context.getControl("Label3").Text = "El ratón se mueve por X= " & oEv.X & " Y=" & oEv.Y
End Sub


Sub Raton_Entra( oEv As Object )
'--------------------------------------------------------------------------
   oEv.Source.Context.getControl("Label3").Text = "El ratón ha entrado por X= " & oEv.X & " Y=" & oEv.Y
End Sub


Sub Raton_Sale( oEv As Object )
'--------------------------------------------------------------------------
   oEv.Source.Context.getControl("Label3").Text = "El ratón ha salido por X= " & oEv.X & " Y=" & oEv.Y
End Sub


Señal Nota.png

Los eventos Click y Doubleclick de VBA no existen en Apache OpenOffice Basic. Pero como hemos visto, es fácil implementar procedimientos que los sustituyan


Señal CopyRight.png

Texto, imágenes y código bajo licencia CC BY-SA.png

Basado en el documento Getting Started with Base. Apache OpenOfficetm Database Component, de Drew Jensen Copyright 2013 liberado bajo licencia Apache Software License 2.0, que incluye material de:
  • OpenOffice.org 3.3 Getting Started Guide, Chapter 8 - Getting Started with Base, Copyright 2010 Dan Lewis, Iain Roberts, Magnus Adielsson, Jean Hollis Weber, JiHui Choi
  • OpenOffice.org 3.2 BASIC Guide · March 2010, Copyright Oracle Corp.
Modificada el 27 may 2015 03:32.   Visitas: 6655