SYSidentifyCoordinate

Top  Previous  Next

Digitalisieren eines Punktes aus der Datenbank oder dem Konstruktionspuffer.

Mit dieser Routine wird ein Punkt beim Anwender abgefragt und dann der nächstliegende Wert aus der Datenbank, d.h. aus der Menge der selektierten Objekte und den Punkten des Konstruktionspuffers, zurückgegeben. Als Ergebnis werden sowohl die Koordinaten, als auch das Punkthandle ermittelt.

Parameter

x (double *)                                              [OUT]

y (double *)                                              [OUT]

Die Position des identifizierten Punktes, wenn als Funktionswert von SYSidentifyCoordinate SYS_COORD_VALID_IDENTIFY geliefert wird. Wird x oder y als NULL-Zeiger übergeben, dann wird die Position nicht abgespeichert.

point (T_PPOINT *)                                [OUT]

In dieser Variablen wird das Handle des identifizierten Punktes gespeichert. Wenn für diesen Parameter ein NULL-Zeiger übergeben wird, dann wird das Handle nicht zurückgeliefert.

flags (long int)                                              [IN]

Steuert das Verhalten der Funktion und die weiteren Parameter. Der Parameter kann jede Kombination der nachfolgend beschriebenen Flags oder 0 sein. Es werden die folgenden Flags ausgewertet:

SYS_COORD_MARK_IDENTIFIED

Der identifizierte Punkt wird mit einem Marker gekennzeichnet. Der Marker wird aus dem Initialisierungssegment entnommen, wenn dort kein Marker angegeben ist, wird der Marker 1 verwendet. Mit SYS_COORD_MARKER kann dieser Wert überschrieben werden.

SYS_COORD_NO_MESSAGE_TEXT

Es wird keine Meldung vor dem Abfragen der Koordinaten ausgegeben.

SYS_COORD_HIGHLIGHT_POINT

Der identifizierte Punkt wird durch Highlighting mit der Stufe Identify gekennzeichnet.

SYS_COORD_HIGHLIGHT_ELEMENT

Das identifizierte Element wird durch Highlighting mit der Stufe Identify gekennzeichnet.

SYS_COORD_RETURN_TEXT

Der letzte, vom Anwender eingegebene Text wird in dem übergebenen Textpuffer zurückgegeben. Der Puffer sollte eine Mindestlänge von 20 Zeichen haben, da sonst ggf. die eingegebenen Koordinaten verstümmelt werden.

SYS_COORD_IDENTIFY_FLAGS_P

Beim Identifizieren mit der Taste P werden statt der Identifikation über alle Elemente und Stützpunkte die angegebenen Merkmale verwendet.

SYS_COORD_IDENTIFY_FLAGS_L

Beim Identifizieren mit der Taste L werden statt der Identifikation über Stringelemente und Stützpunkte die angegebenen Merkmale verwendet.

SYS_COORD_IDENTIFY_FLAGS_R

Beim Identifizieren mit der Taste R werden statt der Identifikation über Symbole und Stützpunkte die angegebenen Merkmale verwendet.

SYS_COORD_IDENTIFY_FLAGS_C

Beim Identifizieren mit der Taste C werden statt der Identifikation über Texte und Stützpunkte die angegebenen Merkmale verwendet.

SYS_COORD_MSGTEXT

Statt der eingebauten Meldung wird die mitgelieferte Meldung verwendet, wenn der Anwender zu einer Koordinateneingabe aufgefordert werden soll.

SYS_COORD_NO_USE_CONSTRUCTION_BUFFER

Die Suche nach identifizierbaren Punkten bleibt auf die Selektionsmenge beschränkt. Standardmäßig wird auch der Konstruktionspuffer durchsucht.

SYS_COORD_MARKER

Es soll statt des in der Initialisierung angegebenen Markers der mit dieser Routine mitgelieferte verwendet werden. Dieser wird aber nur angezeigt, wenn auch SYS_COORD_MARK_IDENTIFIED angegeben wird.

text (char *)                               [OUT, optional]

Wenn in flags SYS_COORD_RETURN_TEXT angegeben wurde, wird mit text ein Puffer erwartet, der zum Speichern des eingegebenen Textstrings verwendet wird. Dies gilt auch für Koordinaten. Wenn zum Identifizieren mehrere Strings angefordert werden, dann wird der letzte hier abgelegt. Die Länge des Puffers wird in textlen angegeben.

textlen (int)                                [OUT, optional]

Wenn in flags SYS_COORD_RETURN_TEXT angegeben wurde, dann wird in textlen die Länge des Textpuffers erwartet. Diese Länge sollte mindestens 20 Zeichen lang sein, damit eine vollständige Koordinate eingelesen werden kann.

identifyFlagsP (int)                       [IN, optional]

Wird in flags der Parameter SYS_COORD_IDENTIFY_FLAGS_P gesetzt, so wird dieser Wert zum Identifizieren eines Punktes eingesetzt, wenn die Koordinate mit der Taste P digitalisiert wurde. Wird dieses Flag nicht gesetzt, so ist für die Taste P voreingestellt, sodass alle Elemente nach dem Stützpunktverfahren durchsucht werden.

identifyFlagsL (int)                       [IN, optional]

Wird in flags der Parameter SYS_COORD_IDENTIFY_FLAGS_L gesetzt, so wird dieser Wert zum Identifizieren eines Punktes eingesetzt, wenn die Koordinate mit der Taste L digitalisiert wurde. Wird dieses Flag nicht gesetzt, so ist für die Taste L voreingestellt, sodass nur Stringelemente nach dem Stützpunktverfahren durchsucht werden.

identifyFlagsR (int)                       [IN, optional]

Wird in flags der Parameter SYS_COORD_IDENTIFY_FLAGS_R gesetzt, so wird dieser Wert zum Identifizieren eines Punktes eingesetzt, wenn die Koordinate mit der Taste R digitalisiert wurde. Wird dieses Flag nicht gesetzt, so ist für die Taste R voreingestellt, sodass nur Symbolelemente nach dem Stützpunktverfahren durchsucht werden.

identifyFlagsC (int)                       [IN, optional]

Wird in flags der Parameter SYS_COORD_IDENTIFY_FLAGS_C gesetzt, so wird dieser Wert zum Identifizieren eines Punktes eingesetzt, wenn die Koordinate mit der Taste C digitalisiert wurde. Wird dieses Flag nicht gesetzt, so ist für die Taste C voreingestellt, sodass nur Textelemente nach dem Stützpunktverfahren durchsucht werden.

msgText (char *)                          [IN, optional]

Wird in flags der Parameter SYS_COORD_MSGTEXT gesetzt, so wird dieser Text vor dem Identifizieren ausgegeben.

marker (int)                                   [IN, optional]

Wird in flags der Parameter SYS_COORD_MARKER gesetzt, so wird statt des Standardmarkers dieser Marker zum Kennzeichnen des identifizierten Punktes verwendet. Zusätzlich muss das Flag SYS_COORD_MARK_IDENTIFIED gesetzt werden. Der Standardmarker wird durch die Initialisierungsvariable IdentifyMarker bestimmt.

Ergebnis

(int)                                                           [OUT]

0        Es wurde kein Punkt gefunden, weil entweder CON betätigt wurde oder statt einer Koordinate ein Text eingegeben wurde.

1        (SYS_COORD_VALID_IDENTIFY) Es wurde ein Punkt digitalisiert. Die Koordinaten stehen in (x,y), das Handle in point.

Konstanten

#define SYS_COORD_VALID_IDENTIFY                          1

#define SYS_COORD_MARK_IDENTIFIED                        0x00000001

#define SYS_COORD_NO_MESSAGE_TEXT            0x00000002

#define SYS_COORD_HIGHLIGHT_POINT                        0x00000004

#define SYS_COORD_HIGHLIGHT_ELEMENT           0x00000008

#define SYS_COORD_RETURN_TEXT                    0x00000010

#define SYS_COORD_IDENTIFY_FLAGS_P             0x00000020

#define SYS_COORD_IDENTIFY_FLAGS_L             0x00000040

#define SYS_COORD_IDENTIFY_FLAGS_R             0x00000080

#define SYS_COORD_IDENTIFY_FLAGS_C             0x00000100

#define SYS_COORD_MSGTEXT                                   0x00000200

#define SYS_COORD_NO_USE_CONSTRUCTION_BUFFER   0x00000400

#define SYS_COORD_MARKER                                      0x00008000

 

Deklaration

#include "system.h"

 

int DLLENTRY SYSidentifyCoordinate (

     double *    x,

     double *    y,

     T_PPOINT *     point,

     long int    flags,

     ...

);