RectStuff®
Auteur : Thibaud@osmose.net Éditeur : editeur@osmose.net distributeur exclusif : sales@e-node.com
rs_FLASH RECT(nombre;haut;gauche;bas;droit)
| Paramètres | Type | flêche | Description |
| nombre | Entier | -> | nombre de flashs |
| haut, gauche, droit, bas | Entiers | -> | coordonnées locales du rectangle |
Fait flasher nombre de fois le rectangle dont les coordonnées (locales) sont spécifiées par haut, gauche, bas et droit.
rs_INVERT RECT(haut;gauche;bas;droit)
| Paramètres | Type | flêche | Description |
| haut, gauche, droit, bas | Entiers | -> | coordonnées locales du rectangle |
Provoque l'inversion vidéo du rectangle dont les coordonnées (locales) sont spécifiées par haut, gauche, bas et droit. Cette inversion persiste tant que la fenêtre n'est pas redessinée: il n'est pas possible "d'enregistrer" cette inversion.
rs_SET THE RECT(unRectangle;haut;gauche;bas;droit)
| Paramètres | Type | flêche | Description |
| unRectangle | Réel | <- | réel dans lequel seront stockées les coordonnées d'un rectangle |
| haut, gauche, bas, droit | Entiers | -> | coordonnées du rectangle |
rs_SET THE RECT stocke dans le réel unRectangle les coordonnées qui lui sont passées. Vous pouvez ainsi plus facilement préparer plusieurs rectangles, et utiliser par la suite les routines rs_FLASH THE RECT et rs_INVERT THE RECT. rs_SET THE RECT est également indispensable à la préparation des rectangles utilisés par les routines de glisser-déposer et celles de rectangle de sélection.
rs_FLASH THE RECT(nombre;unRectangle)
| Paramètres | Type | flêche | Description |
| nombre | Entier | -> | nombre de flashs |
| unRectangle | Réel | -> | réel contenant les coordonnées du rectangle |
Fait flasher nombre de fois le rectangle dont les coordonnées (locales) sont spécifiées par unRectangle, préalablement rempli par la routine rs_SET THE RECT.
rs_INVERT THE RECT(unRectangle)
| Paramètres | Type | flêche | Description |
| unRectangle | Réel | -> | réel contenant les coordonnées du rectangle |
Provoque l'inversion vidéo du rectangle dont les coordonnées (locales) sont spécifiées par unRectangle, préalablement remplit par la routine rs_SET THE RECT.
rs_DRAG RECT ON ONERECT(rectDépart;rectArrivée;bienDéposé;entourer;calculerOffset)
| Paramètres | Type | flêche | Description |
| rectDépart | Réel | -> | coordonnées du rectangle de départ |
| rectArrivée | Réel | -> | coordonnées du rectangle d'arrivée |
| bienDéposé | Entier | <- | 1 si rectDépart a été déposé sur rectArrivée |
| entourer | Entier | -> | Entourer rectArrivée au lieu de l'inverser calculer |
| Offset | Entier | -> | Calculer un offset pour rectDepart |
Cette routine sera habituellement appelée à partir de la méthode objet d'un bouton invisible (un tel bouton reçoit l'événement "Sur clic souris" lorsque le bouton de la souris est enfoncé, alors qu'un bouton normal reçoit cet événement lorsque le bouton est enfonçé puis relché), d'une liste de défilement ou de tout objet réagissant à l'enfoncement du bouton de la souris.
Elle dessine le contour de rectDépart. Ce contour suit les mouvements de l'utilisateur. Chaque fois que le pointeur passe au-dessus de rectArrivée, celui-ci est inversé. Si l'utilisateur quitte rectArrivée, le contraste est annulé, et ainsi de suite.
Lorque l'utilisateur relâche le bouton de la souris, si le pointeur était au-dessus de rectArrivée, bienDéposé est mis à 1, sinon, bienDéposé vaut 0.
rs_DRAG RECT ON LOT OF RECTS(rDepart;tRects;index;entourer;calculerOffset)
| Paramètres | Type | flêche | Description |
| rDepart | Réel | -> | Rectangle de départ |
| tRects | Tableau de réels | -> | rectangles d'arrivée |
| index | Entier | <- | indice, dans tRects, du rect. ayant reçu le drop |
| entourer | Entier | -> | Entourer les rectangles de tRects au lieu de les inverser |
| calculerOffset | Entier | -> | Calculer un offset pour rectDepart |
Cette routine fait la même chose que rs_DRAG RECT ON ONE RECT, mais reçoit en 2e argument un tableau de réels, dont chaque élément aura obligatoirement été initialisé avec tp_SET THE RECT.
Chaque fois que la souris (bouton maintenu enfoncé par l'utilisateur) passera au dessus d'un des rectangles de tRects, celui-ci sera inversé.
Au retour, index vaut -1 si le bouton a été relché ailleurs que sur un des rectangles de tabRect, sinon index contient l'indice du rectangle dans le tableau tRects.
Note: un élément de tableau ne peut pas recevoir de valeur d'un plug-in. (ceci est valable pour tous les plug-in) Il faut toujours passer par une variable intermédiaire.
Par exemple, on ne peut écrire:rs_SET THE RECT(unTableau{10};5;5;25;25)Il faut à la place écrire :
rs_SET THE RECT($unRect;5;5;25;25)
unTableau{10}:=$unRect
rs_SELECTION RECT(haut;gauche;bas;droite;ecranComplet)
| Paramètres | Type | flêche | Description |
| Haut, gauche, droit, bas | Entiers | <- | Coordonnées du rectangle dessiné par l'utilisateur |
| ecranComplet | Entier | -> | Autoriser le dessin sur tout l'écran |
La routine attend que l'utilisateur enfonce le bouton de la souris, puis suit alors ses mouvements en dessinant un "rectangle de sélection", comme on le fait sur le bureau ou dans une application de dessin par exemple.
Quand l'utilisateur a terminé (bouton de souris relaché), les paramètres haut, gauche, bas, et droit reçoivent les coordonnées du rectangle dessiné par l'utilisateur. S'il n'a rien fait (simple clic, ou retour au point de départ) les paramètres sont tous mis à 0.
Le dessin du rectangle de sélection se fait dans la fenêtre de premier plan. Si ecranComplet est différent de 0, tout l'écran peut alors être utilisé.
A noter: Si ecranComplet est égal à zéro (dessin limité à la fenêtre de 1er plan), les coordonnées sont locales, exprimées par rapport à cette fenêtre (le point 0;0 étant situé en haut à gauche). Si ecranComplet est différent de 0, les coordonnées sont alors globales, exprimées par rapport à tout l'écran.
rs_SELECTION RECT_2(haut;gauche;bas;droite;tRects;tIndex;entourer;laisser)
| Paramètres | Type | flêche | Description |
| Haut, gauche, droit, bas | Entiers | -> | Coordonnées du rectangle dessiné |
| tRects | Tableau de réels | -> | Rectangles à tester |
| tIndex | Tableau entiers | <- | Rectangles sélectionnés ou entier long |
| entourer | Entier | -> | entourer au lieu d'inverser |
| laisser | Entier | -> | laisser en l'état quand l'utilisateur a terminé |
Cette routine fait la même chose que rs_SELECTION RECT, mais permet de sélectionner un ou plusieurs rectangles passés dans le tableau tRects (préalablement rempli à l'aide de la routine tp_SET THE RECT). Tous les rectangles contenus dans tRects sont contrastés s'ils sont inclus (même incomplètement) dans le rectangle tracé par l'utilisateur. Ils se désélectionnent automatiquement si l'utilisateur change le tracé de son rectangle. Tout se fait donc comme une sélection d'icones sur le bureau, par exemple, ou dans l'éditeur de formulaire de 4D. Si l'utilisateur termine normalement son déplacement, haut, gauche, bas et droit contiennent les coordonnées du rectangle qu'il a tracé, et la taille de tIndex est égale au nombre de rectangles sélectionnés. Chaque élément de tIndex correspond à l'indice du rectangle sélectionné dans tRects. Si laisser est différent de 0, les rectangles sélectionnés restent contrastés jusqu'au prochain redessinement de la fenêtre par 4D.
A noter: