28
In der Hilfe ist beschrieben, daß man TYPE's als Funktionsargumente als auch als Rückgabewerte von Funktionen nutzen kann. Somit liegt doch die Vermutung nahe, daß man beides auch kombinieren kann, da Funktionsaufrufe generell ja geschachtelt werden können. Ich habe also eine Funktion, die einen TYPE zurückliefert. Wenn ich jedoch diese Funktion als Funktionsargument einer zweiten Funktion mitgebe, erhalte ich einen Fehler "(9) error : wrong argument type : PrintType, arg no: 1"
Einfaches Beispiel:
Die Funkton MakeType erstellt eine Variable vom Typ t_type. Die Funktion PrintType soll die Werte ausgeben und erwartet einen Parameter vom Typ t_type. Erstelle ich erst eine Variable vom Typ t_type und übergebe diese als Parameter an PrintType, funktioniert das. Übergebe ich als Parameter gleich den Funktionsaufruf, erhalte ich den Fehler. (geschrieben mit Version 5.360)
TYPE t_type
a; b; c
ENDTYPE
LOCAL ty AS t_type
//ty = MakeType(5, 3, 7)
//PrintType(ty) <----- das funktioniert
PrintType(MakeType(5, 3, 7)) // <----- das nicht
SHOWSCREEN
KEYWAIT
// ------------------------------------------------------------- //
// --- MAKETYPE ---
// ------------------------------------------------------------- //
FUNCTION MakeType AS t_type: a, b, c
LOCAL lt AS t_type
lt.a = a
lt.b = b
lt.c = c
RETURN lt
ENDFUNCTION // MAKETYPE
// ------------------------------------------------------------- //
// --- PRINTTYPE ---
// ------------------------------------------------------------- //
FUNCTION PrintType: pt AS t_type
PRINT pt.a, 0, 0
PRINT pt.b, 0, 20
PRINT pt.c, 0, 40
ENDFUNCTION // PRINTTYPE