WINDOW
WINDOW | |
Syntax: | WINDOW <linker Rand>, <oberer Rand>, <rechter Rand>, <unterer Rand>, [<löschen>] |
Parameter | |
<linker Rand>: numerischer Ausdruck im Wertebereich von 0 bis Bildschirmbreite - 1 | |
<oberer Rand>: numerischer Ausdruck im Wertebereich von 0 bis 24 | |
<rechter Rand>: numerischer Ausdruck im Wertebereich von 0 bis Bildschirmbreite - 1 | |
<unterer Rand>: numerischer Ausdruck im Wertebereich von 0 bis 24 | |
<löschen>: numerischer Ausdruck im Wertebereich von 0 bis 1 | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Ein/Ausgabe |
Aufgabe: | Bildschirmbereich für die Ausgabe im Textmodus festlegen |
Abkürzung: | wI |
Token: | $fe $1a (254 26) |
Verwandte Befehle | |
RWINDOW |
Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl WINDOW ab Commodore BASIC V7.0 oder höher.
Die Anweisung WINDOW legt einen Bildschirmbereich (ein Fenster) für die Ausgabe im Textmodus fest und löscht ihn bei Bedarf.
Die Parameter sind:
- <linker Rand>: erlaubte Werte von 0 bis Bildschirmbreite - 1
- <oberer Rand>: erlaubte Werte von 0 bis 24
- <rechter Rand>: erlaubte Werte von 0 bis Bildschirmbreite - 1
- <unterer Rand>: erlaubte Werte von 0 bis 24
- <löschen>: Dieser Parameter ist optional; erlaubte Werte sind 0 (Bereich nicht löschen) und 1 (Bereich löschen)
Liegen die Parameter außerhalb der erlaubten Bereiche oder ist der rechte Rand kleiner als der linke bzw. der untere Rand kleiner als der obere, so wird ein ?ILLEGAL QUANTITY ERROR ausgegeben.
Die Bildschirmbreite (entweder 40 oder 80 Zeichen) sowie die aktuelle Breite und Höhe des Ausgabefensters kann mit der RWINDOW-Funktion ermittelt werden, nicht aber die genaue Position des Fensters.
Alternativ kann das Ausgabefenster auch durch Steuercodes festgelegt werden:
- {ESC} + T: linke, obere Ecke festlegen
- {ESC} + B: rechte, untere Ecke festlegen
- {HOME} + {HOME}: Standardausgabebereich (=gesamter Bildschirm) wieder herstellen und Cursor in die obere, linke Ecke positionieren
Beispiele[Bearbeiten | Quelltext bearbeiten]
Einfach[Bearbeiten | Quelltext bearbeiten]
10 WINDOW 5, 6, RWINDOW(2) - 5, 20, 1 20 PRINT "TEXT IM FENSTER";CHR$(19);CHR$(19)
Bei diesem Beispiel wird zuerst ein Ausgabefenster definiert, das an der 6. Spalte in der 7. Zeile beginnt und 4 Spalten vom rechten Bildschirmrand entfernt in der 21. Zeile endet. Zusätzlich wird der Inhalt des Fensters gelöscht. In der darauffolgenden Zeile wird der Text TEXT IM FENSTER ausgegeben und anschließend der Fensterbereich aufgehoben und der Cursor in die obere, linke Ecke positioniert.
Window-Demo für 40 und 80 Zeichen[Bearbeiten | Quelltext bearbeiten]
10 REM WINDOW DEMO 20 SCNCLR 0:SCNCLR 5 30 PRINT"40 ZEICHEN (1) ODER 80 ZEICHEN(2)!" 40 GETKEY A$:IF INSTR("12",A$)=0 THEN40 50 IF A$="1" THEN M=1:ELSE M=2 60 GRAPHIC 5 70 IF M=1 THEN SLOW:GRAPHIC 0:ELSE:FAST:GRAPHIC 5 80 COLOR 0,1:COLOR 1,5:COLOR 4,1 90 SCNCLR 100 PRINT""TAB(9*M)"W I N D O W EXAMPLE" 120 SPACE$=" " 140 :X1=1:Y1=4:X2=37:Y2=22:REM WINDOW-KOORDINATEN 150 :CHAR,X1*M-1,Y1-1,CHR$(111) 160 :FOR ZZ=X1*M TO X2*M 170 ::PRINT CHR$(183); 180 :NEXT ZZ 190 :PRINT CHR$(112) 200 :FOR ZZ=Y1 TO Y2 210 ::PRINT TAB(X1*M-1)CHR$(180)TAB(X2*M+1)CHR$(167) 220 :NEXT ZZ 230 PRINT TAB(X1*M-1)CHR$(108); 240 :FOR ZZ=X1*M TO X2*M 250 ::PRINT CHR$(175); 260 :NEXT ZZ 270 ::PRINT CHR$(186); 280 :WINDOWX1*M,Y1,X2*M,Y2,1 290 :PRINTCHR$(27)+"@" 300 :PRINT"HIER BIST DU IM FENSTER";CHR$(19);CHR$(19) 310 GRAPHIC CLR
APPEND | BANK | BEGIN | BEND | BLOAD | BOOT | BSAVE | BUMP | CATALOG | COLLISION | COLOR | CONCAT | DCLEAR | DCLOSE | DOPEN | DVERIFY | ENVELOPE | FAST | FETCH | FILTER | GO64 | MOVSPR | (OFF) | PEN | PLAY | POINTER | POT | (QUIT) | RECORD | RREG | RSPCOLOR | RSPPOS | RSPRITE | RWINDOW | SLEEP | SLOW | SOUND | SPRCOLOR | SPRDEF | SPRITE | SPRSAV | STASH | SWAP | TEMPO | WIDTH | WINDOW | XOR