GLBasic Benutzerhandbuch

Main sections

FUNCTION

FUNCTION name#$ : arg1#$, arg2#$...
...
ENDFUNCTION



Mit FUNCTION erstellt man Funktionsdefinitonen. name#$ ist der Name der Funktion. argx#$ sind die Argumente, die die Funktion als Übergabeparameter benötigt. Diese Variablen sind im Bereich der Funktionsdefinition LOKAL.
Der Rückgabewert der Funktion wird duch den Parameter des Befehls: RETURN angegeben.

Ein Funktionsaufruf geschieht durch den Namen der Funktion mit einer Klammer:
a=name(3,4)
Eine Funktion muss nicht immer einen Wert zurückgeben. Das erreicht man, indem man nur RETURN ohne Wert verwendet. Der Rückgabewert wird dann '0' sein.

Sample:
 
// Function

a$=Right$("123456", 2); // 56
PRINT a$, 100, 80

LOCAL a
a=7; b=12; GLOBAL a=15
c=Max(a, b) // 7, 12
Center("c="+c, 100) // 12
Center ("a="+a, 140) // 7
Center("b="+b, 180) // 12
Center("GLOBAL a="+GLOBAL a, 220) // 0 (function: Max)
SHOWSCREEN
MOUSEWAIT

// ------------------------------------------------------------- //
// -=# MAX - größere Zahl(a, b) / bigger number(a, b) #=-
// ------------------------------------------------------------- //
FUNCTION Max: a, b
// Diese Variablen sind als LOCAL definiert:
// a, b
LOCAL ret
IF a>b
ret=a
ELSE
ret=b
ENDIF
// Das hat keinen Einfluss auf die globalen Variablen
a=0
// Das schonl
GLOBAL a=0
RETURN ret
ENDFUNCTION // MAX

// ------------------------------------------------------------- //
// -=# CENTER #=-
// ------------------------------------------------------------- //
FUNCTION Center: text$, y
// Diese Variablen sind als LOCAL definiert:
// text$, y
PRINT text$, (640-LEN(text$)*16)/2, y
ENDFUNCTION // CENTER


// Eine Funktion mit Wort als Rückgabewert
// ------------------------------------------------------------- //
// -=# RIGHT$ #=-
// ------------------------------------------------------------- //
FUNCTION Right$: word$, size
// Diese Variablen sind als LOCAL definiert:
// These values are defined LOCAL:
// word$, size
RETURN MID$(word$, LEN(word$)-size, size)
ENDFUNCTION // RIGHT$

See also...