4D v15

Evénement formulaire Sur défilement

Accueil

 
4D v15
Evénement formulaire Sur défilement

Evénement formulaire Sur défilement  


 

Dans les versions précédentes de 4D, le défilement des variables images et des champs image pouvait être géré par l'événement formulaire Sur défilement image (valeur 59).

A partir de 4D v15, la prise en charge de type d'événement a été étendue aux objets list box (voir ci-dessous). Par conséquent, l'événement formulaire Sur défilement image a été renommé Sur défilement et est désormais sélectionnable pour les list box dans la Liste des propriétés. Bien entendu, cet événement reste pris en charge pour les images.

Notes de compatibilité :
De légères différences sont à noter entre l'implémentation de l'événement formulaire Sur défilement image dans les versions précédentes de 4D et celle du nouvel événement Sur défilement :

  • Sur défilement image était généré dans la méthode objet et dans la méthode formulaire (mais il ne pouvait être coché ou désélectionné dans les propriétés du formulaire). Pour davantage de cohérence, dans 4D v15 l'événement formulaire Sur défilement est généré dans la méthode objet uniquement. Si votre application convertie gérait les événements de défilement d'images depuis la méthode formulaire, il vous sera nécessaire de déplacer le code dans la ou les méthode(s) objet appropriée(s).
  • Dans la pile des événements, Sur défilement image pouvait être appelé avant les autres événements utilisateur tels que Sur clic. En revanche, Sur défilement est toujours généré après les autres événements utilisateur.

Dans 4D v15, l'événement formulaire Sur défilement est disponible pour deux objets défilables : 

  • Les champs image et les variables image ayant le format d'affichage "Tronqué (non centré)" (déjà disponible dans les versions précédentes de 4D avec le nom Sur défilement image),
  • Les list box (nouveauté 4D v15).

Par défaut, l'événement n'est pas coché pour ces objets dans la Liste des propriétés.

L'événement formulaire Sur défilement est généré dès que l'utilisateur fait défiler l'objet de formulaire à l'intérieur de la zone qui le contient. L'événement est uniquement généré lorsque le défilement est le résultat d'une action utilisateur : activation des barres et/ou des curseurs de défilement, utilisation de la roulette de la souris ou du clavier. Il n'est pas généré lorsque le défilement est provoqué par l'exécution de la commande OBJECT SET SCROLL POSITION

Cet événement est généré après tous les autres événements liés à l'action de défilement (Sur clic, Sur après frappe clavier, etc.).

Sur défilement est généré uniquement dans la méthode objet (et non dans la méthode formulaire).

Exemple  

Vous souhaitez dessiner un rectangle rouge autour de la cellule sélectionnée d'une list box, et vous voulez que le rectangle se déplace si l'utilisateur fait défilement verticalement la list box. Dans la méthode objet de la list box, vous pouvez écrire :

 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)  //initialize a red rectangle
       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)
  //tenir compte de la hauteur de l'entête pour ne pas que le rectangle empiète dessus
       $toAdd:=LISTBOX Get headers height(*;"LB1")
       If($ylb1+$toAdd<$y1) & ($ylb2>$y2//si nous sommes dans la list box
  //pour simplifier, on ne tient compte que des en-têtes
  //mais il faudrait également gérer le clipping horizontal
  //ainsi que les barres de défilement
          OBJECT SET VISIBLE(*;"RedRect";True)
          OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)
       Else
          OBJECT SET VISIBLE(*;"RedRect";False)
       End if
 
 End case

En résultat, le rectangle rouge suit bien le défilement de la list box :

 
PROPRIÉTÉS 

Produit : 4D
Thème : Langage

 
HISTORIQUE 

 
MOTS-CLÉS 

.

 
UTILISATION DE L'ARTICLE

4D v15 - Mise à jour (édition R-release) ( 4D v15)

Parent de : Evénement formulaire Sur défilement ( 4D v15)