RectStuff®
Auteur : Thibaud@osmose.net Éditeur : editeur@osmose.net exclusive resseler : sales@e-node.com
RectStuff est un plug-in pour Quatrième Dimension.
Il apporte des routines supplémentaires de manipulation de l'interface utilisateur.
RectStuff vous permet de
Contexte d'utilisation : 4D à partir de la version 6, quel que soit l'environnement (Mac ou Windows) et le type d'application (4D, Server, Runtime, Engine, structure interprétée, compilée, ...).
Note: pour utiliser ce plug-in en version 5, il suffit de modifier la longueur de nom des routines. Ces noms sont contenus dans la ressource "STR#" ID 17654 du plug-in. En version 5, les noms sont limités à 15 caractères. Reportez-vous à la base de test pour voir rapidement le plug-in en action. Les possibilités offertes par le plug-in permettent d'envisager de nombreuses utilisations.
Par exemple (et cette liste n'est pas exhaustive !), du plus "simple"
... au plus compliqué :
Les coordonnées que vous passez au routines s'expriment toujours par rapport au bord supérieur gauche de la fenêtre, et sont automatiquement recalculées par le plug-in en fonction du défilement des ascenseurs. Ce réalignement automatique est indispensable pour garder l'intégrité de vos rectangles. En voici l'explication.
Imaginons par exemple un rectangle dont les coordonnées initiales sont les suivantes:

Tant que les ascenseurs ne sont pas défilés, il n'y a aucun problème.
Appeler par exemple rs_FLASH RECT(3;50;100;70;200) fera toujours flasher le bon rectangle. Si, plus tard, l'utilisateur fait défiler l'ascenseur vertical de 50 pixels, les coordonnées de votre rectangle (par rapport au "nouveau" bord supérieur gauche de la fenêtre) deviennent les suivantes :

Si le programme ne réalignait pas les coordonnées, c'est l'ancien emplacement du rectangle qui serait utilisé, donnant un effet déroutant pour l'utilisateur. 4D ne proposant aucune commande vous permettant de savoir si un ascenseur est défilé ou non, RectStuff se charge de vérifier cet état de chose. Il faut donc toujours passer au plug-in les coordonnées telles qu'elles sont définies dans l'éditeur de formulaire, c'est-à-dire par rapport au bord supérieur gauche d'une fenêtre non défilée. Toutefois, il peut arriver que vous exprimiez les coordonnées d'un rectangle par rapport à la position de la souris. C'est le cas des routines de pseudo drag 'n drop, lorsque vous les appelez à partir d'un élément d'un tableau (voyez la base d'exemple). Dans ce cas, il ne faut pas que le programme réaligne ce rectangle, qui est déjà exprimeé en coordonnées correctes. un paramètre a donc été ajouté à certaines routines. Il permet de préciser au plug-in, lorsque c'est nécessaire, que vous ne voulez pas que le rectangle soit réaligné en fonction du défilement des ascenseurs.
Compte tenu de leurs particularités, RectStuff ne doit pas être utilisé avec des formulaires sortie. Les coordonnées ne peuvent être réalignées correctement dans ce genre de formulaire. Tout au plus est-il possible d'utiliser RectStuff dans l'entête des formulaires, car cette zone ne change jamais de coordonnées. La version 6.5 de 4D permet de positionner des objets actifs en entête des formulaires sorties, et RectStuff peut y être utilisé. N'utilisez pas le corps et le pied de page.
e-Node
Z.A. La Gardette
Rue Cantelaudette
33310 LORMONT
Tél : 05.56.31.57.35 Fax : 05.56.77.84.29
eMail : Sales@e-node.com
web : http://www.e-node.com/
RectStuff est édité par OSMOSE éditeur.
OSMOSE Editeur
33, Av. Jean-Monnet
13410 LAMBESC
Tél.: 04 42 92 83 55 - Fax: 04 42 92 83 27
eMail: editeur@osmose.net
web: http://osmose.net
Le coût de RectStuff est de 60 EUR HT par plate-forme, 90 EUR HT pour les deux. La licence est "Hassle-Free", il en faut une par développeur. Lorsque vous aurez effectué votre règlement, vous recevrez un numéro de licence par plate-forme, qu'il faudra passer en paramètre à la routine rs_Register :
$erreur:=rs_Register("licenceMac";"licenceWindows")
Tant que le produit n'aura pas été enregistré, l'erreur N° -30 006 vous sera retournée, et le package fonctionnera en mode de démonstration. Dans cet état, il peut être utilisé 30 minutes (temps compté à partir de l'ouverture de la base), puis il émettra un beep à chaque appel d'une de ses routines. Le plus judicieux est de placer rs_Register dans la méthode base "Sur ouverture"