Variablendeklaration
  • 13 May 2024
  • 1 Minute zum Lesen
  • Dunkel
    Licht
  • pdf

Variablendeklaration

  • Dunkel
    Licht
  • pdf

Artikel-Zusammenfassung

Generell machen Variablendefinitionen die ohne den Befehl

DEFINE VARIABLE varName

passieren diese immer global, d.h. das Gegenteil zu gebräuchlichen Sprachen ist der Fall! Da man in den meisten Fällen in Makros, Prozeduren oder Funktionen mit lokalen Variablen zurechtkommt, empfiehlt es sich, diese auch so zu definieren:

PROCEDURE DpmFpBreite

DEFINE VARIABLE sE

sE = ""

RUN ExtendedRangeMinMaxBreite(sE, "mm")

FpBreite.EXTRANGE = sE

END

Dies trifft zumeist auf Laufvariablen wie i in for-Schleifen zu. Der Hauptvorteil bei dieser Vorgehensweise ist beim Makrointerpreter in der Variablentabelle ersichtlich:

 

Würde man nämlich auf eine solche Vorgehensweise verzichten wäre diese sehr schnell sehr unübersichtlich, da eine jede einzelne Variable einer Version hier aufscheint.

Sobald eine Variable mit DEFINE VARIABLE definiert wurde, gilt diese nur innerhalb eines Makros, Prozedur oder Funktion, d.h. wird ein solcher Block verlassen, existiert diese Variable nicht mehr. Durch eine Deklaration wird noch kein Typ festgelegt, dies passiert erst immer bei einer Initialisierung:

DEFINE VARIABLE i !Deklaration

i =0 !Definition durch Initialisierung (Typ ist jetzt NUM)

FOR i = 1 TO DO BEGIN

/* Anweisungen */

END

i = "100|1000||mm" !Ist unzulässig und erzeugt einen Fehler

                               !da zuvor ein numerische Wert zugewiesen wurde

!Globale Variablendefinition

gModellTyp = LEFT$(WS_MODELL,3)

Globale Variablen werden oft in Strukturvariablen zusammengefasst, da diese problemlos an Prozeduren übergeben werden können und dementsprechend auch sehr schön strukturiert in der Variablentabelle angezeigt werden können.

objFenster = ""

objFenster.Typ = "S"

objFenster.Rahmenbreite = 1500

objFenster.Rahmenhoehe = 1000

Variablen werden mit der ersten Zuweisung definiert und deklariert, d.h. es gibt sehr wohl Datentypen, aber diese werden nicht in der Deklaration angegeben da die Zuweisung den Typ bestimmt.

RAM_TR = 10                            !Definition einer globalen ganzzahligen Zahl (INT)

UFaktor = 0.5                            !Definition einer globalen Gleitkommazahl (FLOAT)

Fixer_Text = "Eingabe ungültig!" !Definition eines globalen Stings

Die Ausnahme sind hier Instanzen oder Deklarationen betreffend DotNet-Wrapper:

AssemblyCache = NEW STATIC DotNetWrapper.AssemblyCache

DEFINE VARIABLE mO AS object

Findet nur in Spezialprojekten Anwendung und wird daher nicht näher erläutert!

 

 


War dieser Artikel hilfreich?

What's Next