Fichas de Referencia L.O. Basic
Ficha nº 5.
Sucesos
Nivel: Intermedio
|
Esta ficha de referencia está bajo licencia de CreativeCommons BY-SA v3 (fr) o posterior.: https://creativecommons.org/licenses/by-sa/3.0/fr/ |
|
Este documento es una adaptación del documento original, en Francés, que se puede obtener en la Wiki de publicaciones de LibreOffice.
|
Versión |
Fecha |
Comentarios |
|
2.0 |
06/04/2021 |
Révision ; modif. mise en forme. |
|
2.0_ES |
15/09/2026 |
Traducción y cambio de formato para esta versión |
Somos como enanos a hombros de gigantes. Si alcanzamos a ver más cosas y más lejanas que ellos, no es por la perspicacia de nuestra visión, ni por nuestra grandeza, sino porque son ellos quienes nos elevan. (atribuido a Bernard de Chartres )
Los objetos manipulados por LibreOffice reconocen diversos tipos de suceso, que se desencadenan en diferentes situaciones. Puede interceptar estos sucesos para darles el tratamiento deseado.
Objetos contenedores de sucesos
|
La aplicación |
Objetos del documento |
|
|
|
Documentos |
Objetos OLE |
Texto Automático |
|
|
Formularios y sus controles |
Imágenes |
Zonas de Imágenes |
|
|
Diálogos Basic y sus controles |
Cuadros |
Hiperenlaces |
|
Principio
Cree la macro que desee ejecutar según el modelo:
Sub NombreDeLaMacro()
End Sub
Use un Nombre de macro de acorde con el objeto, la acción y el tipo de suceso.
ejemplo: Sub EnBoton_OK_Click()
La subrutina puede contener parámetros. vea más abajo.
Seleccione el objeto contenedor del suceso que quiera interceptar.
Acceda a su configuración (método variable en función del objeto).
Elija el suceso que quiera interceptar (vea la lista en este guía de referencia).
Seleccione la macro para ejecutar con el desencadenante del suceso.
Obtener información del elemento desencadenante
El procedimiento de ejecución puede consultar el parámetro recibido para obtener informaciones complementarias sobre el suceso:
Sub RespuestaSuceso(ByRef Event As Object)
End Sub
La estructura y las propiedades del objeto Event dependen del tipo de suceso que desencadena la llamada al procedimiento (información más adelante).
Usos estándar para acceder a los controles de diálogo Basic:
|
Para acceder a |
Consultar |
|
(Objeto) control que hace la llamada |
Event.Source |
|
(Objeto) modelo del control |
Event.Source.Model |
|
(Objeto) diálogo propietario del control |
Event.Source.Context |
Hay cuatro categorías de sucesos de los diálogos (columna Cat en última tabla):
|
Ratón |
M |
0,00 € |
|
Teclado |
K |
Desencadenados por las secuencias de teclas del teclado |
|
Foco |
F |
Ejecutados cuando el foco cambia de un control a otro. |
|
Específicos |
S |
Relacionados con ciertos controles. |
Las constantes citadas a continuación se deben usar vigilando las Mayúsculas.
Sucesos asociados al ratón
Las coordenadas se miden en píxeles a partir del ángulo superior izquierdo del control.
vea la estructura com.sun.star.awt.MouseEvent.
|
Buttons (short) |
El botón pulsado (com.sun.star.awt.MouseButton). |
|
X (long) , Y (long) |
Coordenadas X e Y respectivas del cursor del ratón |
|
ClickCount (long) |
Número de clics asociados a un suceso del ratón. Si LibreOffice puede responder lo bastante rápido, ClickCount es igual a 1 para un doble-clic, (sólo un suceso). |
|
PopupTrigger (boolean) |
True si hay menú contextual |
Constantes definidas en com.sun.star.awt.MouseButton.
|
LEFT |
Botón izquierdo. |
RIGHT |
Botón derecho. |
MIDDLE |
Botón central. |
Los sucesos VBA Click y Doubleclick no están disponibles en LibreOffice Basic. Puede utilizar el suceso LibreOffice Basic Botón del ratón soltado en lugar del suceso Click e imitar el suceso Doubleclick modificando la lógica de la aplicación.
Sucesos asociados al Teclado
Los sucesos del teclado se asocian a pulsaciones lógicas y no a pulsaciones físicas.
Combinación de teclas = un único suceso.
Una acción única sobre una tecla de modificación (ej: Shift o Alt) no crea ningún suceso independiente.
Los objetos Event asociados al Teclado tienen las siguientes propiedades:
|
KeyCode (short) |
El código de la tecla pulsada (com.sun.star.awt.Key.XXX). |
|
KeyChar (String) |
El carácter elegido (teniendo en cuenta las teclas modificadoras). |
|
KeyFunc (Integer) |
Funcionalidad de la tecla según la constante en |
|
Modifiers (Integer) |
Indica si se ha pulsado una tecla muerta ( vea las constantes |
Resumen de las constantes definidas en com.sun.star.awt.Key.XXX
|
NUM0 à NUM9 |
Cifras |
RETURN |
Enter |
POINT |
. |
|
A à Z |
Letras |
ESCAPE |
Esc |
COMMA |
, |
|
F1 à F26 |
T. de función |
TAB |
Tab |
LESS |
< |
|
UP |
↑ |
BACKSPACE |
Back |
GREATER |
> |
|
DOWN |
↓ |
SPACE |
Space |
EQUAL |
= |
|
LEFT |
← |
INSERT |
Ins |
CUT |
Ctrl+X |
|
RIGHT |
→ |
DELETE |
Del |
COPY |
Ctrl+C |
|
HOME |
Home |
ADD |
+ |
PASTE |
Ctrl+V |
|
END |
End |
SUBTRACT |
- |
HELP |
F1 |
|
PAGE UP |
RePág |
MULTIPLY |
* |
MENU |
Windows |
|
PAGEDOWN |
AvPág |
DIVIDE |
/ |
CONTEXTMENU |
|
Los siguientes códigos indentifican teclas físicas.
Constantes com.sun.star.awt.KeyFunc.XXX
|
DONTKNOW |
Desconocida |
CUT |
Cortar |
CLOSE |
Cerrar |
|
NEW |
Nuevo |
COPY |
Copiar |
QUIT |
Salir |
|
OPEN |
Abrir |
PASTE |
Pegar |
PROPERTIES |
Propiedades |
|
SAVE |
Guardar |
UNDO |
Deshacer |
FIND |
Búscar |
|
SAVEAS |
Guardar como |
REDO |
Rehacer |
FINDBACKWARD |
Buscar (hacia atrás) |
|
|
Imprimir |
REPEAT |
Repetir |
FRONT |
Primer plano |
Constantes com.sun.star.awt.KeyModifier.XXX (acumulables con + o And)
|
MOD1 |
Ctrl |
MOD2 |
Alt |
SHIFT |
Shift |
Sucesos asociados al Foco
Los objetos Event asociados al foco tienen las siguientes propiedades:
|
FocusFlags (short) |
La razón del cambio de foco. (Vea constantes com.sun.star.awt.FocusChangeReason). |
|
NextFocus (Object) |
El objeto que recibe el foco (sólo para «al perder foco»). |
|
Temporary (Boolean) |
El foco se ha perdido temporalmente. |
Constantes definidas en com.sun.star.awt.FocusChangeReason
|
TAB |
Tabulador pulsado. |
BACKWARD |
Control anterior. |
|
CURSOR |
Una tecla de dirección pulsada. |
AROUND |
Del último al 1er control (adelante o del 1º al último (atrás). |
|
MNEMONIC |
Una tecla de atajo pulsada. |
UNIQUEMNEMONIC |
Una tecla de atajo a un sólo control pulsada. |
|
FORWARD |
Control siguiente. |
|
Sucesos específicos asociados a ciertos controles
Algunos sucesos se pueden desencadenar mediante una acción en determinados controles (ej. Botones de opción). No se ejecuta ninguna acción para determinar si el estado del control se ha modificado realmente. Para evitar este tipo de « suceso ciego », guarde el valor antiguo del control en una variable global y verifique si el valor se modifica en el momento que se produzca dicho suceso.
Propiedades del suceso Item Status Changed:
|
Selected (long) |
La entrada esta seleccionada. |
|
Highlighted (long) |
La entrada está realzada |
|
ItemId (long) |
El identificador de la entrada |
Sucesos asociados a los documentos
Propiedades del suceso entrante (vea apartado siguiente):
|
EventName (string) |
El nombre del suceso. |
|
Source (object) |
El documento que causa el suceso. |
|
ViewController (object) |
El controlador de visualización en cuestión si no hay: Null. |
|
Supplement (variant) |
Las informaciones complementarias, si no hay: Empty. |
Herramientas > Personalizar > Eventos
Sucesos disponibles
|
Suceso |
La macro asignada se ejecuta … |
|
Iniciar la aplicación |
Después del inicio de la aplicación. |
|
Cerrar la aplicación |
Antes de cerrar la aplicación. |
|
Documento creado |
Después de Archivo > Nuevo. |
|
Documento nuevo |
Después de creacción de un documento a partir de una plantilla |
|
La carga del doc. ha finalizado |
Después de recargar un documento. |
|
Abrir documento |
Después de Archivo > Abrir. |
|
Se cerrará el documento |
Antes de cerrar un documento. |
|
Documento cerrado |
Después de cerrar un documento.
|
|
Vista creada |
Después de la creación de la vista del documento. |
|
La vista se cerrará |
Antes de cerrar la vista del documento. |
|
Vista cerrada |
Antes del cierre de la vista del documento. |
|
Activar documento |
Después de que el documento ocupe el 1er plano. |
|
Desactivar documento |
Después que otro documento ocupe el 1er plano |
|
Guardar documento |
Antes de Archivo > Guardar, si el nombre de documento ya existe
|
|
El documento se ha guardado |
Después de Archivo > Guardar, si el nombre del documento ya existe. |
|
Falló el guardado del documento |
Después de un error al guardar el documento. |
|
Guardar documento como |
Antes de Archivo Guardar como o Archivo > Guardar si el nombre de documento no existe. |
|
El documento se ha guardado como |
Después de Archivo > Guardar como, o Archivo |
|
Falló « Guardar como » |
Después de un error al Guardar como. |
|
Almacenar o exportar copia del documento. |
|
|
Se creó una copia del documento. |
Después de la creación de la copia. |
|
Falló la creación de una copia del d. |
Después de un error al crear la copia. |
|
Impresión de documento |
Después del cierre del diálogo Imprimir, pero antes |
|
Se ha cambiado el estado «modificado» |
Después de que el estado « modificado » haya |
|
Título del documento cambiado |
Después de la modificación del título del documento. |
|
Inició la impresión de las cartas modelo |
Después del cierre del diálogo imprimir pero antes |
|
Finalizó la impresión de las cartas modelo |
Después de la impresión de cartas modelo. |
|
Inició la fusión de campos en el formulario |
|
|
Finalizó la fusión de campos en el formulario |
|
|
Modificación del contador de paginas |
En el momento del cambio del número de páginas |
Los sucesos Vista se desencadenan al cambiar la vista:
Modo de previsualización o Nueva ventana.
Secuencias de sucesos en el documento
Apertura de un documento existente (cualquier método)
Cierre del documento activo (cualquier método)
Creacción de un documento a partir de una plantilla
Propiedades del objeto > pestaña Macro, botón Macro, botón Sucesos, etc.
|
Suceso |
Desencadenante |
Objeto. OLE |
Imágen |
Cuadro |
Texto autom. |
Mapa-Imag. |
Hipervínculo |
|---|---|---|---|---|---|---|---|
|
Clic sobre el objeto |
Objeto seleccionado. |
● |
● |
● |
|
|
|
|
Ratón sobre el objeto |
El ratón se desplaza sobre el objeto. |
● |
● |
● |
|
● |
● |
|
Activar Hipervínculo |
El hipervínculo asignado se activa. |
● |
● |
● |
|
|
● |
|
El ratón sale del objeto |
El puntero del ratón se desplaza fuera del objeto. |
● |
● |
● |
|
● |
● |
|
Carga de imagen finalizada |
La carga de imágenes ha finalizado. |
|
● |
|
|
|
|
|
Carga de imagen interrumpida |
El usuario ha interrumpido a carga de |
|
● |
|
|
|
|
|
Error al cargar la imagen |
La carga de imágenes ha fallado |
|
● |
|
|
|
|
|
Escritura de caracteres alfanuméricos |
Escritura de un texto con el teclado. |
|
|
● |
|
|
|
|
Escritura de caracteres No alfanuméricos |
Escritura de caracteres no imprimibles (tabulación, entrar, etc.). |
|
|
● |
|
|
|
|
Modificación del tamaño de un cuadro |
El tamaño de un cuadro se ha modificado mediante el ratón. |
|
|
● |
|
|
|
|
Desplazamiento de un cuadro |
Se ha desplazado un cuadro mediante el ratón. |
|
|
● |
|
|
|
|
Antes de la inserción de Texto automático |
Antes de insertar un bloque de texto automático. |
|
|
|
● |
|
|
|
Después de la inserción de Texto automático |
Después de insertar un bloque de texto automático. |
|
|
|
● |
|
|
Editar > Hoja > Sucesos (o clic derecho en la pestaña y despues Sucesos de hoja)
|
Suceso |
La macro asignada se ejecuta ... |
|
Activar documento |
Después de la presentación del documento en 1er plano. |
|
Desactivar documento |
Después de la presentación de otro documento en 1er plano. |
|
Selección cambiada |
Después de cambiar la selección. |
|
Doble-clic |
Después de un doble clic en una celda. |
|
Clic derecho |
Después de un clic derecho en un rango. |
|
Fórmulas calculadas |
Después del recálculo de las fórmulas |
|
Contenido cambiado |
Después de la modificación del contenido de una celda |
Propiedades del control, pestaña Sucesos
Sucesos estandard que no pertenecen a una base de datos
|
Cat |
Suceso |
La macro asignada se ejecuta… |
|
F |
Recepción de foco |
Cuando un control recibe el foco |
|
F |
Al perder el foco |
Cuando un control pierde el foco |
|
K |
Tecla pulsada |
Cuando el usuario pulsa una tecla mientras el control tiene el foco |
|
K |
Después de haber pulsado una tecla |
Cuando el usuario suelta una tecla mientras el control tiene el foco |
|
M |
Ratón dentro |
Cuando el ratón se encuentra en el interior del control |
|
M |
Mover el ratón por medio del teclado |
Cuando el ratón se desplaza a la vez que se pulsa una tecla. Por |
|
M |
Movimiento del ratón |
Cuando el ratón se desplaza sobre el control |
|
M |
Botón del ratón pulsado |
Si se pulsa el botón del ratón mientras que el puntero del ratón se |
|
M |
Botón del ratón soltado |
Si se suelta el botón del ratón mientras que el puntero del ratón se |
|
M |
Ratón fuera |
Cuando el ratón se encuentra fuera del control |
El suceso Botón del ratón pulsado sirve también para notificar las llamadas a un menú contextual.
La propiedad PopupTrigger del suceso es TRUE.
Si la llamada se hace con el clic derecho, el suceso se desencadena dos veces:
(1) en la llamada al menú contextual y (2) en el mismo clic. Si sólo le interesa usar el clic descarte las llamadas PopupTrigger.
Sucesos de los controles de cuadros de diálogo
Además de los sucesos estándar indicados, algunos controles ofrecen:
|
Cat |
Suceso |
La macro asignada se ejecuta… |
|
Ejecutar una acción |
Iniciar una acción. Por ej. si el formulario contiene un botón
|
|
|
KM |
Estado modificado |
Cuando se ha modificado el estado del control |
|
M |
Valor de desplazamiento o incremento /decremento. |
Como respuesta a la acción sobre una barra de |
Sucesos asociados a una base de datos
|
Suceso |
La macro asignada se ejecuta... |
|
Después de agregar un registro |
Después de la inclusión del registro activo. |
|
Después de la modificación del registro |
Inmediatamente después de la modificación del indicador del registo activo. |
|
Antes de la modificación del registro |
Antes de que el registo activo sea modificado, permite solicitar una confirmación. |
|
Antes del envío |
Antes de que los datos del formulario se envíen. |
|
Antes de actualizar |
Antes de que el contenido del control modificado por el usuario |
|
Después de actualizar |
Después de que el control modificado por el usuario escriba en la |
|
Antes de reestablecer |
Antes de reestablecer un formulario, por ej. para impedir una acción de reenvío FALSE. Un formulario se reestablece cuando alguna de las siguientes condiciones se cumple: El usuario pulsa un botón (HTML) definido como botón Reestablecer. Un registro nuevo y vacío se crea en un formulario asociado a una |
|
Después de restablecer |
Después de reestablecer el formulario. |
|
Antes del cambio de un registro |
Antes de la modificación del indicador del registro activo. Por |
|
Antes de la descarga |
Antes de que el formulario se descargue, (se separe de su fuente de base de datos). |
|
Antes de la recarga |
Antes de la recarga del formulario. (El contenido de la base de datos aún no se ha actualizado). |
|
Confirmar eliminación |
Cuando los datos se han eliminado del formulario, por ejemplo para solicitar una confirmación. |
|
Al cargar |
Después de la carga del formulario. |
|
Al descargar |
Inmediatamente después de la descarga del formulario (se separe de su fuente de base de datos). |
|
Al recargar |
Inmediatamente después de la recarga del formulario. (Ya se ha |
|
Rellenar los campos (parámetros) |
Cuando el formulario que ha de ser cargado contiene parámetros Por ejemplo, la fuente de datos puede ser: |
|
Ha ocurrido un error |
Si ocurre un error durante el acceso a la base de datos.
|