Jede Variable wird zur Laufzeit der Instanz erstellt und kann somit zu jeder Zeit gelöscht und auch umbenannt werden. Man kann durch die DLL Variablen selbst definieren und diese modifizieren und auslesen.
OpernoCreateVariable(Name.s, *Value.OpernoValue [, *Super.OpernoObject])
Erstellt eine Variable mit dem angegebenen Namen und dem angegebenen Wert *Value
. *Super
ist ein Zeiger auf das Trägerobjekt/Namensraum der zu erstellenden Variable. Wird *Super
nicht angegeben, so wird main
als Namensraum verwendet.
Der Rückgabewert ist die Adresse auf das Objekt der neuen Variable.
Define *X.OpernoObject = OpernoCreateVariable("x", OpernoCreateIValue(5))
Debug OpernoEvalI("2x + x²") ;= "35"
Debug *X\Name ;= "x"
*Value
darf kein Wert sein, der im Stack verankert ist. Es soll also ein Wert sein, der durch OpernoCreate...Value
erstellt wurde.
OpernoVariableValue(*Object.OpernoObject)
Gibt die Adresse des Wertes zurück, der in der Variable *Object
verankert ist. Auf die Attribute dieses Rückgabewertes kann durch die Struktur OpernoValue
zugeriffen werden.
OpernoVariableMemory(*Object.OpernoObject)
Gibt den Inhalt des Wertes als Adresse zurück. Hierbei wird jediglich auf den Member Memory
von OpernoValue
zugegriffen.
Define *Num.OpernoObject = OpernoCreateFVariable("num", 7.5)
Debug PeekF(OpernoVariableMemory(*Num)) ;= "7.5"
Debug *Num\Variable\Value\Float\F ;= "7.5"
OpernoSetVariable(*Object.OpernoObject, *Value.OpernoValue)
Weist der Variable *Object
einen neuen Wert *Value
zu. Bei der Zuweisung wird die Klassenmethode _set
aufgerufen.
Define *A.OpernoObject = OpernoCreateIVariable("a", 567)
Define *B.OpernoObject = OpernoCreateIVariable("b", 123)
Debug OpernoVariableI(*A) ;= "567"
OpernoSetVariable(*A, OpernoVariableValue(*B))
Debug OpernoVariableI(*A) ;= "123"