CENTER (TSB)
CENTER (TSB) | |
Syntax: | CENTER [AT(zl,sp)] <string> / <strvar> [ , <breite> ] |
Parameter | |
string: beliebige Zeichenkette | |
strvar: beliebige Stringvariable | |
breite: Wert von 0 bis 255 | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Bildschirmkontrolle |
Aufgabe: | zentrierte Ausgabe eines Strings |
Abkürzung: | cE |
Token: | $64 $23 (100 35) |
Verwandte Befehle | |
AT - LIN - POS - TAB - SPC |
Dieser Artikel beschreibt das TSB-Schlüsselwort CENTER (TSB).
Das entsprechende Simons'-Basic-Schlüsselwort lautet CENTRE.
Typ: Anweisung Syntax: CENTER [ AT(zl,sp) ] <string> | <strvar> [ , <breite> ]
CENTER gibt Strings oder String-Variablen zentriert auf dem Bildschirm aus.
Wenn nicht durch das optionale AT(zl,sp) anders bestimmt, erfolgt die Ausgabe auf der Bildschirmzeile, auf der der Cursor sich gerade befindet, und bezieht sich ohne den Parameter <breite> auf die volle Zeilenbreite von 40 Zeichen. Wenn der Cursor nicht an Spalte 0, sondern irgendwo innerhalb der Bildschirmzeile positioniert ist, wird die Restbreite ( 40 minus POS(0) ) als Zentrierungsgrundlage verwendet.
Der optionale Parameter <breite> legt fest, welcher Wert als Grundlage für die Zentrierung gelten soll. Die Einrückung wird also bezüglich dieser Angabe vorgenommen ( (<breite> minus LEN(<string>)) durch 2 ).
Ist das Ergebnis der internen Einrückungsberechnung 0 oder kleiner als LEN(<string>) plus 2, wird nicht eingerückt. Der Wert <breite> kann größer sein als 40 (maximal 255), wobei ab einem Berechnungsergebnis von 128 plus LEN(<string>) (ergibt intern einen negativen Bytewert) keine Einrückung mehr erfolgt. Ist der erste Parameter kein Ausdruck vom Typ String, kommt es zur Fehlermeldung ?TYPE MISMATCH ERROR. Fehlt der erste Parameter oder sind mehr als zwei angegeben, führt das zum Abbruch mit ?SYNTAX ERROR. Ist der zweite Parameter kleiner als 0 oder größer als 255, gibt es einen ?ILLEGAL QUANTITY ERROR.
Beispiel[Bearbeiten | Quelltext bearbeiten]
10 CLS: CENTER "demo" 20 PRINT AT(2,0) DUP("{shift-*}",40) 30 PRINT AT(4,0) "stop by C=" AT(5,0) "slow down by CTRL" AT(6,0) "break by STOP" 40 PRINT AT(8,0) DUP("{shift-*}", 40) 50 FOR i=1 to 5: PRINT AT(10+i,4)"{shift--}" AT(10+i,14)"{shift--}" AT(10+i,24)"{shift--}" AT(10+i,34)"{shift--}" 60 NEXT 70 FOR i=0 to 2 80 CENTER AT(11,5+i*10) "Nr."+str$(i+1),9 90 NEXT: PRINT AT(20,0)"";
Gibt eine zentrierte Gesamtüberschrift (Zeile 10), ein paar Infozeilen (Zeilen 20 bis 40) und eine (leere) Tabelle (Zeilen 50 und 60) mit zentrierten Überschriften aus (speziell in Zeile 80):
$$ | %% | AT | CALL | CENTER | CHECK | COLD | COLOR | COPY | CLS | CSET | D! | D!PEEK | D!POKE | DIR | DISK | DISPLAY | DIV | DO | DO NULL | DRAW TO | DUMP | DUP | ELSE | ERROR | EXEC | FETCH | FIND | GRAPHICS | INSERT | INST | JOY | KEY | KEYGET | LIN | MAP | MEMCLR | MEMCONT | MEMDEF | MEMLEN | MEMLOAD | MEMOR | MEMPEEK | MEMPOS | MEMREAD | MEMRESTORE | MEMSAVE | MERGE | MOB ON/OFF | MOBCOL | MOD | MOVE | MULTI | NRM | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PLACE | RENUMBER | RESUME | RETRACE | SCRLD | SCRSV | SOUND | TEXT | TRACE | USE | WAVE | X!