4D v16.3

CONVERTIR COORDONNEES

Accueil

 
4D v16.3
CONVERTIR COORDONNEES

CONVERTIR COORDONNEES 


 

CONVERTIR COORDONNEES ( coordX ; coordY ; depuis ; vers ) 
Paramètre Type   Description
coordX  Variable entier long in Coordonnée horizontale d'un point (initiale)
in Coordonnée horizontale d'un point (convertie)
coordY  Variable entier long in Coordonnée verticale d'un point (initiale)
in Coordonnée verticale d'un point (convertie)
depuis  Entier long in Système de coordonnées d'origine
vers  Entier long in Système de coordonnées dans lequel convertir le point

La commande CONVERTIR COORDONNEES permet de convertir les coordonnées (x;y) d'un point depuis un système de coordonnées vers un autre système de coordonnées. Les systèmes de coordonnées pris en charge sont les formulaires (ainsi que les sous-formulaires), les fenêtres et l'écran. Par exemple, vous pouvez utiliser cette commande pour obtenir les coordonnées, dans le formulaire principal, d'un objet appartenant à un sous-formulaire. Ce principe facilite notamment la création de menus contextuels à des emplacements personnalisés.

Dans coordX et coordY, passez des variables contenant les coordonnées (x;y) du point que vous voulez convertir. Après exécution de la commande, ces variables contiendront les valeurs converties.

Dans le paramètre depuis, passez le système d'origine dans lequel sont exprimées les coordonnées du point, et dans le paramètre vers, passez le système de coordonnées dans lequel elles doivent être converties. Chaque paramètre peut avoir pour valeur l'une des constantes suivantes, présentes dans le thème "Fenêtre" :

Constante Type Valeur Comment
XY Ecran Entier long 3 L'origine est le coin supérieur de l'écran principal (comme pour la commande COORDONNEES ECRAN)
XY Fenêtre courante Entier long 2 L'origine est le coin supérieur gauche de la fenêtre courante
XY Fenêtre principale Entier long 4 Windows : L'origine est le coin supérieur gauche de la fenêtre principale ; OS X : identique à XY Ecran
XY Formulaire courant Entier long 1 L'origine est le coin supérieur gauche du formulaire courant

Lorsque cette commande est appelée depuis la méthode d'un sous-formulaire ou d'un objet du sous-formulaire, si l'un des sélecteurs est XY Formulaire courant, les coordonnées correspondantes sont relatives au sous-formulaire lui-même, et non celles de son formulaire parent. 

Lorsque vous effectuez une conversion depuis/vers la position d'une fenêtre de formulaire (par exemple une conversion depuis les résultats de COORDONNEES FENETRE, ou vers des valeurs passées à Creer fenetre formulaire), le sélecteur XY Fenêtre principale doit être utilisé car il s'agit du système de coordonnées utilisé par les commandes de gestion des fenêtres sous Windows. Ce sélecteur peut également être utilisé dans ce but sous OS X, où il est équivalent à XY Ecran.

Lorsque le sélecteur depuis contient XY Formulaire courant  et que le point à convertir est situé dans la zone de corps d'un formulaire liste, le résultat dépend du contexte d'appel de la commande : 

  • Si la commande est appelée dans l'événement Sur affichage corps, le point résultant est situé dans le périmètre d'affichage de l'enregistrement affiché à l'écran.
  • Si la commande est appelée en-dehors de l'événement Sur affichage corps mais qu'un enregistrement est en cours de modification, le point résultant est situé dans le périmètre d'affichage de l'enregistrement en cours d'édition.
  • Sinon, le point résultant est situé dans le périmètre d'affichage du premier enregistrement.

Vous souhaitez afficher un pop up menu à l'angle inférieur gauche de l'objet "MonObjet" :

  // OBJECT GET COORDINATES / OBJET LIRE COORDONNEES utilise
  // le système de coordonnées du formulaire courant
  // Dynamic pop up menu / Pop up menu dynamique utilise
  // le système de coordonnées de la fenêtre courante
  // Il faut donc convertir les valeurs
 C_ENTIER LONG($left;$top;$right;$bottom)
 C_TEXTE($menu)
 OBJET LIRE COORDONNEES(*;"MonObjet";$left;$top;$right;$bottom)
 CONVERTIR COORDONNEES($left;$bottom;XY Formulaire courant;XY Fenêtre courante)
 $menu:=Creer menu
 AJOUTER LIGNE MENU($menu;"Right here")
 AJOUTER LIGNE MENU($menu;"Right now")
 Pop up menu dynamique($menu;"";$left;$bottom)
 EFFACER MENU($menu)

Vous souhaitez créer une fenêtre pop up à l'emplacement du curseur de la souris. Sous Windows, vous devez convertir les coordonnées car POSITION SOURIS (avec le paramètre *) retourne des valeurs basées sur la position de la fenêtre MDI :

 C_ENTIER LONG($mouseX;$mouseY;$mouseButtons)
 C_ENTIER LONG($window)
 POSITION SOURIS($mouseX;$mouseY;$mouseButtons)
 CONVERTIR COORDONNEES($mouseX;$mouseY;XY Fenêtre courante;XY Fenêtre principale)
 $window:=Creer fenetre formulaire("PopupWindowForm";Form fenêtre pop up;$mouseX;$mouseY)
 DIALOGUE("PopupWindowForm")
 FERMER FENETRE($window)



Voir aussi  

CHANGER COORDONNEES FENETRE
COORDONNEES FENETRE
OBJET FIXER COORDONNEES
OBJET LIRE COORDONNEES

 
PROPRIÉTÉS 

Produit : 4D
Thème : Fenêtres
Numéro : 1365
Nom intl. : CONVERT COORDINATES

 
HISTORIQUE 

Créé : 4D v15 R3

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)