home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inside Multimedia 1994 October
/
IMM1094.ISO
/
demo
/
optix
/
optix200
/
opt200.prg
/
PROCEDUR.INF
< prev
next >
Wrap
Text File
|
1994-04-16
|
3KB
|
87 lines
Prozeduren
Prozeduren müssen zu Programmanfang nach den Variablen, jedoch vor BEGIN
deklariert werden. Eine Prozedur besteht immer aus dem Befehlskopf PROCEDURE,
dem ein Prozedur-Bezeichner folgt. Ein Prozedur-Befehlsblock wird mit einem
RETURN abgeschlossen. Signifikant sind wieder mal die ersten 16 Stellen des
Bezeichners.
PROCEDURE ZEICHNE
...
RETURN
Der Aufruf einer Prozedur aus dem Programm erfolgt einfach mit der Angabe des
Prozedurnamens. Dadurch ist er äußerlich nicht von einem OPTIX-Befehl zu
unterscheiden.
ZEICHNE
Optional k÷nnen der Prozedur in dafⁿr vorzusehenden Aufnahmevariablen auch
Parameter übergeben werden. Diese Aufnahmevariablen werden intern als lokale
Variablen verwaltet, deren Gültigkeit nur auf die jeweilige Prozedur beschränkt
ist. Sie werden nach dem Prozedurbezeichner in Klammern durch Komma getrennt
angegeben. Und zwar in derselben Reihenfolge und Anzahl, wie sie beim Prozedur-
aufruf übergeben werden.
Das folgende Beispiel zeigt eine Prozedur, die einen Fächer aus Linien
zeichnet. Der Fusspunkt wird mit den Parametern X0 und Y0, die Farbe mit COL
übergeben.
DEF(I)
PROCEDURE RASTER( X0, Y0, COL)
SETCOLOR(COL)
FOR I:= 100 TO 600 STEP 50 DO
LINE(X0, Y0, I, 0, 0)
NEXT(I)
RETURN
BEGIN
RASTER(320, 479, 14)
PAUSE(0)
END
Die Schleifenvariable I ist in diesem Fall vorher als globale Variable dekla-
riert worden; d.h. der Gültigkeitsbereich erstreckt sich über das gesamte
Programm inclusive aller Prozeduren. Von Vorteil ist es oft jedoch, prozedur-
interne Arbeitsvariablen als lokale Variable zu verwenden, da lokale Variablen
Speicherplatz nur während der Ausführung einer Prozedur benötigen.
Lokale Variablen werden innerhalb einer Prozedur mit dem Befehl LOCALS
definiert. Die Gesamtzahl der lokalen Variablen (nur numerisch!), also die
Summe der Parametervariablen im Prozedurkopf und der mit LOCALS definierten
Variablen, ist maximal 16, wobei die Verteilung auf Parameter oder LOCALS
beliebig ist. Die Eigenschaften von Parametern und LOCALS sind identisch.
Gleiche Bezeichner von globalen und lokalen Variablen sind erlaubt. Innerhalb
der Prozedur wird jedoch immer die lokale Variable angesprochen. Soll innerhalb
der Prozedur ein Zugriff auf eine globale Variable gleichen Namens erfolgen,
ist vor den Variablenbezeichner ein Tiefstrich zu setzten (z.B. _I ).
DEF(I)
PROCEDURE RASTER( X0, Y0, COL)
LOCALS(I) ...Lokale VAR
SETCOLOR(COL)
_I := 100 ...Zugriff auf globale VAR
FOR I:= 0 TO 640 STEP 50 DO
LINE(X0, Y0, I, 0, 0)
NEXT(I)
RETURN
BEGIN
FOR I:= 10 TO 15 DO
RASTER(320,479,I) ...Übergabe globale VAR
NEXT(I)
PAUSE(0)
END