home *** CD-ROM | disk | FTP | other *** search
/ Inside Multimedia 1995 July / IMM0795.ISO / demo / optix / optxfpac.set / PROCEDUR.INF < prev    next >
Text File  |  1995-01-18  |  3KB  |  87 lines

  1.  
  2. Prozeduren
  3.  
  4.  
  5. Prozeduren müssen zu Programmanfang nach den Variablen, jedoch vor BEGIN 
  6. deklariert werden. Eine Prozedur besteht immer aus dem Befehlskopf PROCEDURE, 
  7. dem ein Prozedur-Bezeichner folgt. Ein Prozedur-Befehlsblock wird mit einem 
  8. RETURN abgeschlossen. Signifikant sind wieder mal die ersten 16 Stellen des 
  9. Bezeichners.
  10.  
  11.         PROCEDURE ZEICHNE
  12.            ...
  13.         RETURN
  14.  
  15. Der Aufruf einer Prozedur aus dem Programm erfolgt einfach mit der Angabe des 
  16. Prozedurnamens. Dadurch ist er äußerlich nicht von einem OPTIX-Befehl zu 
  17. unterscheiden.
  18.  
  19.         ZEICHNE
  20.  
  21. Optional können der Prozedur in dafür vorzusehenden Aufnahmevariablen auch 
  22. Parameter übergeben werden. Diese Aufnahmevariablen werden intern als lokale 
  23. Variablen verwaltet, deren Gültigkeit nur auf die jeweilige Prozedur beschränkt 
  24. ist. Sie werden nach dem Prozedurbezeichner in Klammern durch Komma getrennt 
  25. angegeben. Und zwar in derselben Reihenfolge und Anzahl, wie sie beim Prozedur-
  26. aufruf übergeben werden.
  27.  
  28. Das  folgende Beispiel zeigt eine Prozedur, die einen Fächer aus Linien 
  29. zeichnet.  Der Fusspunkt wird mit den Parametern X0  und Y0, die Farbe mit COL 
  30. übergeben.
  31.  
  32.         DEF(I)
  33.  
  34.         PROCEDURE RASTER( X0, Y0, COL)
  35.            SETCOLOR(COL)
  36.            FOR I:= 100 TO 600 STEP 50 DO
  37.               LINE(X0, Y0, I, 0, 0)
  38.            NEXT(I)
  39.         RETURN
  40.  
  41.         BEGIN
  42.  
  43.            RASTER(320, 479, 14)
  44.            PAUSE(0)
  45.  
  46.         END
  47.  
  48. Die Schleifenvariable I ist in diesem Fall vorher als globale Variable dekla-
  49. riert worden; d.h. der Gültigkeitsbereich erstreckt sich über das gesamte 
  50. Programm inclusive aller Prozeduren. Von Vorteil ist es oft jedoch, prozedur-
  51. interne Arbeitsvariablen als lokale Variable zu verwenden, da lokale Variablen 
  52. Speicherplatz nur während der Ausführung einer Prozedur benötigen. 
  53.  
  54. Lokale Variablen werden innerhalb einer Prozedur mit dem Befehl LOCALS 
  55. definiert. Die Gesamtzahl der lokalen Variablen (nur numerisch!), also die 
  56. Summe der Parametervariablen im Prozedurkopf und der mit LOCALS definierten 
  57. Variablen, ist maximal 16, wobei die Verteilung auf Parameter oder LOCALS 
  58. beliebig ist. Die Eigenschaften von Parametern und LOCALS sind identisch. 
  59.  
  60. Gleiche Bezeichner von globalen und lokalen Variablen sind erlaubt. Innerhalb 
  61. der Prozedur wird jedoch immer die lokale Variable angesprochen. Soll innerhalb 
  62. der Prozedur ein Zugriff auf eine globale Variable gleichen Namens erfolgen, 
  63. ist vor den Variablenbezeichner ein Tiefstrich zu setzten (z.B. _I ).
  64.  
  65.         DEF(I)
  66.  
  67.         PROCEDURE RASTER( X0, Y0, COL)
  68.            LOCALS(I)            ...Lokale VAR
  69.            SETCOLOR(COL)
  70.            _I := 100            ...Zugriff auf globale VAR
  71.  
  72.            FOR I:= 0 TO 640 STEP 50 DO
  73.               LINE(X0, Y0, I, 0, 0)
  74.            NEXT(I)
  75.         RETURN
  76.  
  77.         BEGIN
  78.  
  79.            FOR I:= 10 TO 15 DO
  80.               RASTER(320,479,I)        ...Übergabe globale VAR
  81.            NEXT(I)
  82.            PAUSE(0)
  83.  
  84.         END
  85.  
  86.  
  87.