4D v16.3

CONVERT COORDINATES

Accueil

 
4D v16.3
CONVERT COORDINATES

CONVERT COORDINATES 


 

CONVERT COORDINATES ( 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 CONVERT COORDINATES 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 Current form Entier long 1 L'origine est le coin supérieur gauche du formulaire courant
XY Current window Entier long 2 L'origine est le coin supérieur gauche de la fenêtre courante
XY Main window Entier long 4 Windows : L'origine est le coin supérieur gauche de la fenêtre principale ; OS X : identique à XY Screen
XY Screen Entier long 3 L'origine est le coin supérieur de l'écran principal (comme pour la commande SCREEN COORDINATES)

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 Current form, 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 GET WINDOW RECT, ou vers des valeurs passées à Open form window), le sélecteur XY Main window 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 Screen.

Lorsque le sélecteur depuis contient XY Current form  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 On Display Detail, 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 On Display Detail 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_LONGINT($left;$top;$right;$bottom)
 C_TEXT($menu)
 OBJECT GET COORDINATES(*;"MonObjet";$left;$top;$right;$bottom)
 CONVERT COORDINATES($left;$bottom;XY Current form;XY Current window)
 $menu:=Create menu
 APPEND MENU ITEM($menu;"Right here")
 APPEND MENU ITEM($menu;"Right now")
 Dynamic pop up menu($menu;"";$left;$bottom)
 RELEASE 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 GET MOUSE (avec le paramètre *) retourne des valeurs basées sur la position de la fenêtre MDI :

 C_LONGINT($mouseX;$mouseY;$mouseButtons)
 C_LONGINT($window)
 GET MOUSE($mouseX;$mouseY;$mouseButtons)
 CONVERT COORDINATES($mouseX;$mouseY;XY Current window;XY Main window)
 $window:=Open form window("PopupWindowForm";Pop up form window;$mouseX;$mouseY)
 DIALOG("PopupWindowForm")
 CLOSE WINDOW($window)



Voir aussi  

GET WINDOW RECT
OBJECT GET COORDINATES
OBJECT SET COORDINATES
SET WINDOW RECT

 
PROPRIÉTÉS 

Produit : 4D
Thème : Fenêtres
Numéro : 1365

 
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)