SYSgetCoordinate

Top  Previous  Next

Koordinaten abholen.

Mit dieser Routine werden die Koordinaten und der Tastencode von Digitizer oder Maus abgeholt. Der Routine können noch Konstanten übergeben werden, die das weitere Vorgehen steuern, z.B. kann der Punkt markiert werden, an dem sich der Cursor befindet.

Parameter

root (PROOT)                                             [IN]

Handle auf die geöffnete Datenbank.

taste (int *)                                          [IN/OUT]

In taste wird der Tastencode zurückgeliefert, z.B. LINK_P oder LINK_L. Wenn der Wert nicht gebraucht wird kann auch NULL übergeben werden.

x (DOUBLE *)                                     [IN/OUT]

y (DOUBLE *)                                     [IN/OUT]

Die Koordinaten sind Datenbankkoordinaten, d.h. es sind die Koordinaten des nächstliegenden Punktes. Sind diese Koordinaten nicht notwendig, kann hier auch beide Werte NULL enthalten. Will man die Originalkoordinaten haben, muss bei den Flags SYS_COORD_RETURN_ORIGINAL_COORDS angegeben werden und zusätzlich zwei Parameter für die Originalkoordinaten.

flags (ULONG)                                            [IN]

Die unten beschriebenen Konstanten können geodert hier angegeben werden, um die Auswertung des nachfolgenden Parameters zu steuern.

...                                                                  [IN]

Hier müssen die Parameter angegeben werden, wie sie durch die Konstanten im Parameter zuvor angegeben worden sind.

Ergebnis

(int)                                                           [OUT]

Bei fehlerfreier Ausführung wird die Konstante SYS_COORD_VALID_IDENTIFY geliefert.

Deklaration

#include "system.h"

 

int DLLENTRY SYSgetCoordinate (

     PROOT    root,

     int *    taste,

     DOUBLE * x,

     DOUBLE * y,

     ULONG    flags,

     ...

);

Konstanten

Die Parameter müssen in dieser Reihenfolge aufgeführt werden, wenn sie gesetzt sind.

SYS_COORD_RETURN_TEXT

Liefert den Text zurück, der in der Kommandozeile steht. Folgende Parameter müssen mit angegeben werden char* text, int textlen. In Text wird die Zeichenkette geliefert und in textlen steht die maximale Zahl die nach Text kopiert wird. text sollte soviel Speicherplatz frei haben wie in textlen angegeben.

SYS_COORD_MSGTEXT

Bevor der Tastenklick erfolgen soll, kann ein zusätzlicher Text ausgegeben werden. Dazu muss eine Zeichenkette mit übergeben werden.

SYS_COORD_MSGTEXT_CLS

Besonderer Text, der ausgegeben wird, wenn auf Stützpunkt eingebunden werden soll. Dazu muss eine Zeichenkette mit übergeben werden.

SYS_COORD_MSGTEXT_EBD

Besonderer Text, der ausgegeben wird, wenn Punkt konstruiert werden soll. Dazu muss eine Zeichenkette mit übergeben werden.

SYS_COORD_MSGTEXT_RPT

Besonderer Text, der ausgegeben wird, wenn Punkt aus dem Konstruktionspuffer identifiziert wird. Dazu muss eine Zeichenkette mit übergeben werden.

SYS_COORD_HAS_IDENTIFY_FLAGS

Hiermit werden zusätzliche Flags angegeben, dazu muss ein long int angegeben werden, das weitere geoderte Konstanten enthalten kann.

SYS_COORD_MARK

Der identifizierte Punkt kann mit einem Marker versehen werden, z.B. grünes Dreieck. Dann muss ein int angegeben werden und z.B. die Konstante DCgreenTriangle

SYS_COORD_MAKE_PSY_PCL

Mit diesem Flag kann vom identifizierten Punkt das Symbol und die Punktklasse ermittelt werden. Dazu müssen zwei Zeiger auf int übergeben werden, der erste für die Symbolnummer und der zweite für die Punktklasse.

SYS_COORD_RETURN_ORIGINAL_COORDS

Es werden oben bei den Parametern normalerweise die Koordinaten des nächstgelegenen Stützpunktes geliefert. Sollen aber die Koordinaten geliefert werden, wo im Plan wirklich hingeklickt wurde, muss dieses Flag gesetzt sein. Dazu müssen zwei Zeiger auf double übergeben werden, der erste für die X-Achse und der zweite für die Y-Achse.

Verwandte Funktionen

SYSidentifyCoordinate