4D v15

On Scroll form event

Inicio

 
4D v15
On Scroll form event

On Scroll form event  


 

En las versiones anteriores de 4D, el desplazamiento de las variables y campos imagen podía manejarse a través del evento formulario On Picture Scroll (valor 59).

En 4D v15, el manejo de este tipo de eventos se ha extendido a los objetos list box (ver más adelante). En consecuencia, el evento formulario On Picture Scroll ha sido renombrado On Scroll y ahora también está disponible para los list boxes en la lista de propiedades. La acción de este evento en imágenes no se modifica.

Notas de compatibilidad:

Hay dos pequeñas diferencias entre la implementación del evento formulario On Picture Scroll en las versiones anteriores de 4D y el nuevo evento On Scroll:

  • On Picture Scroll se generaba en el método objeto y en el método formulario (pero no puede ser seleccionado o desactivado en las propiedades del formulario). Para una mejor consistencia, a partir de 4D v15, el evento On Scroll se generaba sólo en el método de objeto. Si su aplicación convertida manejaba eventos de desplazamientos de imágenes desde el método formulario, tendrá que mover el código para el método objeto apropiado.
  • En la pila de eventos, On Picture Scroll podía ser llamado antes de otros eventos de usuario tales como On Click. On Scroll siempre se genera después de los otros eventos de usuario.

En 4D v15, el evento On Scroll está disponible para dos objetos desplazables:

  • Los campos y variables imagen con el formato "Truncado (no centrado)" (ya disponible en versiones anteriores de 4D con el nombre On Picture Scroll),
  • Los list box (nuevo en 4D v15).

Por defecto, el evento no se selecciona para los objetos en la lista de propiedades.

El evento formulario On Scroll se genera tan pronto como un usuario desplaza el objeto de formulario dentro del área que lo contiene. El evento sólo se genera cuando el desplazamiento es el resultado de una acción del usuario: uso de barras y/o cursores de desplazamiento, con la rueda del ratón o el teclado. No se genera cuando el objeto se desplaza debido a la ejecución del comando OBJECT SET SCROLL POSITION

Este evento se dispara después de todos los otros eventos relacionados con la acción de desplazamiento (On Clicked, On After Keystroke, etc.).

El evento sólo se genera en el método objeto (no en el método formulario).

Ejemplo  

Usted desea dibujar un rectángulo rojo alrededor de la celda seleccionada de un list box y desea que el rectángulo se mueva junto con el list box si es desplazado verticalmente por el usuario. En el método objeto del list box, puede escribir:

 Case of
 
    :(Form event=On Clicked)
       LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)
       LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2)
       OBJECT SET VISIBLE(*;"RedRect";True)&NBSP//inicializa un rectángulo rojo
       OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)
 
    :(Form event=On Scroll)
       LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)
       LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2)
       OBJECT GET COORDINATES(*;"LB1";$xlb1;$ylb1;$xlb2;$ylb2)
       $toAdd:=LISTBOX Get headers height(*;"LB1") //tener en cuenta la altura del encabezado para que no lo sobrepase
       If($ylb1+$toAdd<$y1) & ($ylb2>$y2//si estamos dentro del list box
  //para simplificar, sólo manejamos encabezados
  //pero debemos manejar clipping horizontal
  //así como también las barras de desplazamiento
          OBJECT SET VISIBLE(*;"RedRect";True)
          OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)
       Else
          OBJECT SET VISIBLE(*;"RedRect";False)
       End if
 
 End case

Como resultado, el rectángulo rojo sigue el desplazamiento del list box:

 
PROPIEDADES 

Producto: 4D
Tema: Lenguaje

 
HISTORIA 

 
PALABRAS CLAVES 

.

 
ARTICLE USAGE

4D v15 - Actualización (standard edition) ( 4D v15)

Inherited from : Evento formulario On Scroll ( 4D v15)