4D v16.3

CONVERT COORDINATES

Home

 
4D v16.3
CONVERT COORDINATES

CONVERT COORDINATES 


 

CONVERT COORDINATES ( xKoord ; YKoord ; Von ; Nach ) 
Parameter Typ   Beschreibung
xKoord  Variable Lange Ganzzahl in Horizontale Koordinate eines Punkts (Ausgang)
in Horizontale Koordinate eines Punkts (konvertiert)
YKoord  Variable Lange Ganzzahl in Vertikale Koordinate eines Punkts (Ausgang)
in Vertikale Koordinate eines Punkts (konvertiert)
Von  Lange Ganzzahl in Ausgehendes Koordinatensystem
Nach  Lange Ganzzahl in Koordinatensystem, in das konvertiert wird

Der Befehl CONVERT COORDINATES konvertiert die (x;y) Koordinaten eines Punkts von einem Koordinatensystem in ein anderes. Unterstützte Koordinatensysteme für Ein- und Ausgabe sind Formulare und Unterformulare, Fenster und Bildschirm. Mit diesem Befehl können Sie z.B. die Koordinaten im Hauptfenster für ein Objekt in einem Unterformular erhalten. Das macht das Erstellen eines Kontextmenüs an einer beliebigen eigenen Stelle einfacher.

In xKoord und yKoord übergeben Sie als Variablen die (x;y) Koordinaten des betreffenden Punkts. Nach Ausführen des Befehls enthalten diese Variablen die konvertierten Werte.

Im Parameter Von übergeben Sie das ausgehende Koordinatensystem, das den Eingabepunkt nutzt. Im Parameter Nach übergeben Sie das Koordinatensystem, in das konvertiert werden soll. Beide Parameter können eine der folgende Konstanten unter dem Thema "Fenster" nutzen:

KonstanteTypWertKommentar
XY Current formLange Ganzzahl1Ursprung ist die linke obere Ecke des aktuellen Formulars
XY Current windowLange Ganzzahl2Ursprung ist die linke obere Ecke des aktuellen Fensters
XY ScreenLange Ganzzahl3Ursprung ist die linke obere Ecke des Hauptbildschirms (genauso wie für den Befehl SCREEN COORDINATES)
XY Main windowLange Ganzzahl4Unter Windows: Ursprung ist die linke obere Ecke des Hauptfensters; auf OS X: genauso wie XY Screen

Wird dieser Befehl von der Methode oder einem Objekt des Unterformulars aufgerufen, und ist einer der Selektoren XY Current form, beziehen sich die Koordinaten auf das Unterformular selbst und nicht auf das übergeordnete Formular.

Beim Konvertieren aus/in die Position eines Formularfensters, beispielsweise beim Konvertieren der Ergebnisse von GET WINDOW RECT, oder in Werte, übergeben in Open form window, sollte XY Main window verwendet werden, da es sich hier um das Koordinatensystem handelt, das von Befehlen für Fenster unter Windows verwendet wird. Er lässt sich zu diesem Zweck auch auf OS X verwenden, hier entsprícht er XY Screen.

Stammt Von von XY Current form und liegt der Punkt im Hauptteil eines Listenformulars, richtet sich das Ergebnis nach dem jeweiligen Kontext des Befehls:

  • Wird der Befehl während einem Ereignis On Display Detail aufgerufen, liegt der Ergebnispunkt in dem Datensatz, der auf dem Bildschirm angezeigt wird.
  • Wird der Befehl außerhalb einem Ereignis On Display Detail aufgerufen, jedoch während der Bearbeitung eines Datensatzes, liegt der Ergebnispunkt in dem Datensatz, der bearbeitet wird.
  • Ansonsten liegt der Ergebnispunkt im ersten angezeigten Datensatz.

Ein Pop-Up Menü in der linken unteren Ecke des Objekts "MyObject" aufrufen.

  // OBJECT GET COORDINATES arbeitet im Koordinatensystem des aktuellen Formulars
  // Das dynamische Pop-Up Menü verwendet das Koordinatensystem des aktuellen Fensters
  // Wir müssen die Werte konvertieren
 C_LONGINT($left;$top;$right;$bottom)
 C_TEXT($menu)
 OBJECT GET COORDINATES(*;"MyObject";$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)

Ein Pop-Up Fenster an der Position des Mauszeigers öffnen. Unter Windows müssen Sie die Koordinaten konvertieren, da GET MOUSE (mit dem Parameter *) Werte gemäß der Position des MDI Fensters zurückgibt:

 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)



Siehe auch 

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

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Fenster
Nummer: 1365

 
GESCHICHTE 

Erstellt: 4D v15 R3

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)