Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
OBJET LIRE COORDONNEES
|
OBJET LIRE COORDONNEES ( {* ;} objet ; gauche ; haut ; droite ; bas ) | ||||||||
Paramètre | Type | Description | ||||||
* | Opérateur |
![]() |
Si spécifié = objet est un nom d’objet (chaîne) Si omis = objet est une variable | |||||
objet | Objet de formulaire |
![]() |
Nom d’objet (si * est spécifié) ou Champ ou variable (si * est omis) | |||||
gauche | Entier long |
![]() |
Coordonnée gauche de l’objet | |||||
haut | Entier long |
![]() |
Coordonnée supérieure de l’objet | |||||
droite | Entier long |
![]() |
Coordonnée droite de l’objet | |||||
bas | Entier long |
![]() |
Coordonnée inférieure de l’objet | |||||
La commande OBJET LIRE COORDONNEES retourne dans les variables ou champs gauche, haut, droite et bas les coordonnées (en points) du ou des objet(s) du formulaire courant défini(s) par les paramètres * et objet.
Si vous passez le paramètre optionnel *, vous indiquez que le paramètre objet est un nom d’objet (une chaîne de caractères). Si vous ne passez pas le paramètre *, vous indiquez que objet est un champ ou une variable. Dans ce cas, vous ne passez pas une chaîne mais une référence de champ ou de variable (champ ou variable de type objet uniquement).
Si vous passez un nom d’objet dans le paramètre objet et utilisez le caractère joker @ afin de sélectionner plusieurs objets, les coordonnées retournées seront celles du rectangle formé par l’ensemble des objets concernés.
Note : Il est possible de paramétrer le mode d’interprétation du caractère @, lorsque celui-ci est inclus dans une chaîne de caractères. Cette option influe sur le fonctionnement des commandes du thème “Propriétés des objets”. Pour plus d'informations, reportez-vous au manuel Mode Développement.
Si l’objet n’existe pas ou si la commande est appelée ailleurs que dans le contexte d’un formulaire, les coordonnées retournées sont (0;0;0;0).
Dans le contexte des list box, la commande OBJET LIRE COORDONNEES peut retourner les coordonnées de parties spécifiques des list box, c.-à-d. des colonnes, en-têtes ou pieds, ou celles de l'objet list box parent. Dans les versions de 4D antérieures à la v14 R5, cette commande retournait toujours les coordonnées de la list box parente, quelle que soit la zone passée en paramètre. Désormais, lorsque le paramètre objet référence un en-tête, une colonne ou un pied de list box, ce sont les coordonnées de ce sous-objet qui sont retournées. Vous pouvez utiliser ce fonctionnement, par exemple, pour afficher une petite icône dans la cellule d'en-tête d'une list box lorsqu'elle est survolée par le curseur, indiquant à l'utilisateur qu'il peut cliquer pour afficher un menu contextuel.
Pour des raisons de cohérence, le cadre de référence utilisé par la commande est le même, qu'elle travaille avec un objet list box ou un sous-objet de la list box : le point d'origine est le coin supérieur gauche du formulaire contenant l'objet. Pour les sous-objets de list box, les coordonnées retournées sont théoriques ; elles prennent en compte le défilement appliqué à la list box avant tout éventuel clipping (c.-à-d. le découpage effectué en fonction des coordonnées de la list box parente). Par conséquent, le sous-objet peut ne pas être visible, ou être partiellement visible, et ses coordonnées peuvent se trouver en-dehors des limites du formulaire (voire être négatives). Pour déterminer si le sous-objet est visible (et quelle partie est visible), vous devez comparer les coordonnées retournées avec celles de la list box elle-même, en tenant compte des règles suivantes :
Par exemple, examinez le schéma suivant, dans lequel les coordonnées de la colonne Capital sont symbolisées par un rectangle rouge :
Comme vous pouvez le voir dans la première image, la colonne est plus grande que la list box, donc ses coordonnées dépassent la limite basse de la list box, pied inclus. Dans la seconde image, la list box a défilé, et donc la colonne a également été déplacée "sous" les zones de la colonne Language et d'en-tête. Dans tous les cas, pour calculer la partie réellement visible de la colonne (représentée par la zone verte), vous devez soustraire les zones rouges.
Vous souhaitez obtenir les coordonnées du rectangle formé par tous les objets dont le nom commence par “bouton” :
OBJET LIRE COORDONNEES(*;"bouton@";gauche;haut;droite;bas)
Pour les besoins de votre interface, vous souhaitez entourer d'un rectangle rouge la zone sur laquelle l'utilisateur a cliqué :
Dans la méthode objet de la list box, vous écrivez :
OBJET FIXER VISIBLE(*;"rectangleInfo";Faux) //initialiser un rectangle rouge
$ptr:=OBJET Lire pointeur(Objet courant)
OBJET LIRE COORDONNEES($ptr->;$x1;$y1;$x2;$y2)
OBJET FIXER VISIBLE(*;"RedRect";Vrai)
OBJET FIXER COORDONNEES(*;"RedRect";$x1;$y1;$x2;$y2)
OBJET LIRE COORDONNEES(*;"LB1";$lbx1;$lby1;$lbx2;$lby2)
Si($lby1>$y1)|($lby2<$y2) // si la zone cliquée est en-dehors de la list box
OBJET FIXER VISIBLE(*;"Alerte";Vrai) //afficher une alerte
Sinon
OBJET FIXER VISIBLE(*;"Alerte";Faux)
Fin de si
La méthode retourne les coordonnées théoriques. Si la list box est redimensionnée, vous pourrez avoir besoin de calculer le détourage afin de savoir quelle partie est visible :
CONVERTIR COORDONNEES
LISTBOX LIRE COORDONNEES CELLULE
OBJET DEPLACER
OBJET FIXER COORDONNEES
Produit : 4D
Thème : Objets (Formulaires)
Numéro :
663
Nom intl. : OBJECT GET COORDINATES
Modifié : 4D v6.7
Renommé : 4D v12 (LIRE RECT OBJET)
Modifié : 4D v14 R5
4D - Langage ( 4D v20 R7)