Freigeben über


#DEFINE ... #UNDEF-Präprozessordirektive

Erstellt bzw. löscht Kompilierzeitkonstanten.

#DEFINE ConstantNameeExpression...
#UNDEF ConstantName

Parameter

  • ConstantName
    Gibt den Namen der Kompilierzeitkonstanten an. Der Name der Konstanten muss ein zulässiger Microsoft Visual FoxPro-Name sein, der mit einem Buchstaben oder einem Unterstrich beginnt und aus bis zu 254 Buchstaben, Ziffern oder Unterstrichen besteht. Es empfiehlt sich, die Konstanten in Großschreibung darzustellen und bei der Benennung einen Standard einzuhalten, da dies die Lesbarkeit Ihrer Programme verbessert und das Debuggen vereinfacht.

    Vorsicht   Verwenden Sie keine Visual FoxPro-Schlüsselwörter als Namen für Konstanten.

    Um die Textsubstitution einer mit #DEFINE erstellten Konstante zu beenden, geben Sie #UNDEF ConstantName ein.

  • eExpression
    Gibt den Wert der Kompilierzeitkonstanten an. eExpression kann ein Name oder ein Ausdruck sein, dessen Auswertung einen Wert des Typs Zeichen, Numerisch, Währung, Datum, DatumZeit oder Logisch ergibt.

    Vorsicht   Verwenden Sie keine Systemvariablen für eExpression. Systemvariablen werden erst beim Ausführen des Codes ausgewertet.

Hinweise

Die #DEFINE- und #UNDEF- Präprozessordirektiven werden verwendet, um in Programmen Kompilierzeitkonstanten zu erstellen. Durch die Verwendung von mit #DEFINE erstellten Konstanten anstelle von Speichervariablen lässt sich der Speicherbedarf verringern, das Leistungsverhalten verbessern und das Programm vereinfachen.

Um eine Konstante mit #DEFINE zu erstellen, geben Sie den Namen der Konstanten mit ConstantName und ihren Wert mit eExpression an. Beim Kompilieren des Programms erfolgt die Textsubstitution, und der Ausdruck, der den Wert der Konstante bestimmt, wird für den Namen der Konstanten eingesetzt, so oft dieser im Programm vorkommt. Beenden Sie die Textsubstitution mit #UNDEF.

Die Substitution erfolgt nur in den Programmzeilen nach der #DEFINE-Anweisung, mit der die Konstante erstellt wird und vor der #UNDEF-Anweisung für diese Konstante. Die Konstante steht nur in dem Programm zur Verfügung, in dem sie erstellt wird.

Wenn Sie #DEFINE in eine Ereignis- oder Methodenprozedur in einem Formular einfügen, ist die #DEFINE-Kompilierzeitkonstante nur innerhalb dieser Ereignis- oder Methodenprozedur verfügbar. Um allen Ereignis- und Methodenprozeduren eines Formulars #DEFINE-Kompilierzeitkonstanten zur Verfügung zu stellen, wählen Sie aus dem Menü Formular den Befehl Includedatei, und geben Sie eine Header-Datei an, welche die #DEFINE-Kompilierzeitkonstanten enthält.

Anmerkung   Die Kompilierzeitkonstanten werden nicht erkannt, wenn sie in Anführungszeichen stehen.

Beispiel

Das folgende Programm erstellt eine Kompilierzeitkonstante mit Namen MAXITEMS. Diese Konstante wird in einer FOR ... NEXT-Schleife verwendet, um die Zahlen 1 bis 10 anzuzeigen.

#DEFINE MAXITEMS 10
CLEAR
FOR gnCount = 1 TO MAXITEMS
   ? gnCount
NEXT

Siehe auch

COMPILE-Befehl | #IF ... #ENDIF-Präprozessordirektive | #IFDEF | #IFNDEF ... #ENDIF-Präprozessordirektive