Referenz - WIDTH (Anweisung)
Syntax A: WIDTH [Spalten], [Zeilen]
Syntax B: WIDTH LPRINT Spalten
Syntax C: WIDTH { #Kanal | Gerätename }, Spalten
Typ: Anweisung
Kategorie: Konsole
WIDTH legt die Anzahl der Zeilen sowie der Zeichen pro Zeile für die Textausgabe in Konsolen- und Grafikfenstern (Syntax A), bei der Druckerausgabe (Syntax B) bzw. bei der Ausgabe in eine Datei (Syntax C) fest.
- 'Spalten' ist in einem Konsole-Fenster die Anzahl der Spalten, die für das Fenster bereitgestellt werden sollen, also die Breite des Fensters in Zeichen.
- 'Zeilen' ist in einem Konsole-Fenster die Anzahl der Zeilen, die für das Fenster bereitgestellt werden sollen, also die Höhe des Fensters in Zeichen.
- Für Windows-Konsolen-Fenster darf hier jeder Wert angegeben werden, der größer ist als 0. Für Vollbild-Modi sind die Dimensionen von der Hardware abhängig. Unter Linux ist diese Syntax unzulässig; die Größe des Konsolenfensters kann nicht auf diesem Weg festgelegt werden.
- In einem Grafikfenster (siehe SCREENRES) wird die Anzahl der Spalten und Zeilen und damit indirekt die Höhe des Standard-Schriftsatzes festgelegt. Es werden die Schriftgrößen 8x8 (Standard), 8x14 und 8x16 unterstützt. Bei der Verwendung des Befehls SCREEN sind möglicherweise nicht alle diese Schriftgrößen verfügbar; siehe auch den dazu gehörenden Referenzartikel.
- 'LPRINT' (Syntax B) gibt an, dass die Breite der Druckerausgabe in Zeichen festgelegt werden soll. Wird eine Zeile ausgegeben, die diese Breite überschreitet, wird automatisch ein Zeilenumbruch eingefügt; dabei kann auch das Wort unterbrochen werden. Siehe auch LPRINT (Anweisung). Die Standard-Ausgabebreite des Druckers ist 80.
- '#Kanal' bzw. 'Gerätename' (Syntax C) gibt an, dass die Breite der Dateiausgabe in Zeichen festgelegt werden soll. Wird eine Zeile ausgegeben, die diese Breite überschreitet, wird automatisch ein Zeilenumbruch eingefügt; dabei kann auch das Wort unterbrochen werden. Siehe auch OPEN (Anweisung).
- Wird ein Argument ausgelassen, behält FreeBASIC die vorige Einstellung bei.
Anmerkung: Die Syntax-Varianten B und C konnten noch nicht erfolgreich getestet werden.
Beim Aufruf von WIDTH in Grafikmodi wird ein CLS-Aufruf erzwungen, der Bildschirm wird also gelöscht. Wenn die Kombination Spalten x Zeilen unzulässig ist (z.B. da der Bildschirm nicht so viele Zeichen anzeigen kann), wird keine Änderung vorgenommen.
Beispiele: WIDTH innerhalb der Konsole
Diese Beispiele funktionieren nur unter Windows und DOS.
WIDTH 40, 25
PRINT "Hallo Welt"
SLEEP
Wenn das Konsole-Fenster bereits beschrieben ist, bevor seine Größe mit
WIDTH geändert wird, bleibt dieser Text erhalten:
WIDTH 40, 25
PRINT "ein kleines Fenster"
SLEEP
WIDTH 80, 60
PRINT "ein grosses Fenster"
SLEEP
Im Vollbildmodus unterstützt FreeBASIC nur die Auflösungen im Bereich von 80x25 bis 80x50. Sie können durch das Drücken von [ALT]+[ENTER] zwischen Fenster-und Vollbildmodus wechseln. Haben Sie eine Auflösung eingestellt, die im Vollbildmodus nicht unterstützt wird (z. B. wegen zu vieler Spalten), und Ihr Fenster im Fenstermodus beschrieben, gehen diese Informationen nach zweimaligem Wechsel (in den Vollbildmodus und wieder zurück) nicht verloren; sie können aber im Vollbildmodus nicht angezeigt werden. Wenn Sie eine geringere Auflösung einstellen und durch einen Wechsel in den Vollbildmodus eine Erhöhung der Auflösung erzwingen, so können Sie an jede Position der Vollbild-Konsole schreiben. Beim Zurückwechseln in den Fenstermodus gehen diese Informationen allerdings verloren.
WIDTH 91, 25
DIM Zeile AS STRING
FOR i as integer = 32 TO 122
' Zeile aus 90 Zeichen erzeugen, die alle ASCII-Zeichen
' vom '!' bis zum 'z' enthält.
Zeile &= CHR(i)
NEXT
PRINT Zeile
PRINT "Im Fenstermodus kann diese ganze Zeile angezeigt werden."
PRINT "Wechseln Sie nun bitte per [ALT]+[ENTER] in den Vollbildmodus."
PRINT "Druecken Sie dann bitte eine beliebige Taste, um fortzusetzen."
SLEEP
PRINT "Im Vollbildmodus koennen nur 80x25 Zeichen angezeigt werden."
PRINT "Daher werden von der ersten Zeile nur noch die ersten 80 Zeichen"
PRINT "angezeigt."
PRINT "Wechseln Sie nun bitte wieder per [ALT]+[ENTER] in den Fenstermodus."
PRINT "Druecken Sie dann bitte eine beliebige Taste, um fortzusetzen."
SLEEP
PRINT "Die ganze Zeile wird wieder angezeigt."
PRINT "Druecken Sie bitte eine beliebige Taste, um fortzusetzen."
SLEEP
CLS
WIDTH 40, 26
PRINT "Das Fenster ist jetzt 40x26 Zeichen gross."
PRINT "Wechseln Sie nun bitte per [ALT]+[ENTER] in den Vollbildmodus"
PRINT "druecken Sie dann eine beliebige Taste, um fortzusetzen."
SLEEP
LOCATE 40, 41
PRINT "Wie Sie sehen, bietet der Vollbild-Modus immer noch genug Platz,"
PRINT "um 80x25 Zeichen darzustellen."
PRINT "Allerdings wird jede Zeile schon nach 40 Zeichen umgebrochen."
PRINT "Wechseln Sie nun bitte per [ALT]+[ENTER] in den Fenstermodus"
PRINT "Druecken Sie dann eine beliebige Taste, um zu beenden."
SLEEP
Beispiel: WIDTH im Grafikmodus
Im Grafikmodus wird die Breite und Höhe des Fensters durch SCREENRES festgelegt. Abhängig von dieser Größe sind nur noch bestimmte Angaben zur Spalten- und Zeilenzahl möglich. Um etwa in einem 600x400 Pixel großen Fenster eine 8x16 Pixel große Schrift zu wählen, müssen 25 Zeilen zu je 75 Spalten eingestellt werden. Die Anzahl berechnet sich aus 600 \ 8 = 75 und 400 \ 16 = 25.
Ist die Fensterauflösung zu dem Zeitpunkt, zu dem die Einstellung der Zeichenhöhe vorgenommen werden soll, nicht bekannt, kann sie mit SCREENINFO abgefragt werden. Die Angabe von 'Spalten' und 'Zeilen' richtet sich dann nach den ermittelten Werten.
Dim As Integer breit, hoch
ScreenInfo breit, hoch
Width breit\8, hoch\16 ' für eine Schriftgröße von 8x16
' Für eine Schriftgröße von 8x14 muss hoch\14 gesetzt
' werden, für eine Schriftgröße von 8x8 entsprechend hoch\8
Unterschiede zu QB:
In QB ist die Spaltenzahl auf die Werte 40 und 80 beschränkt, während für die Zeilenzahl die Werte 25, 30, 43, 50 und 60 annehmen kann, abhängig von der verwendeten Grafikhardware und dem eingestellten Screen-Modus.
Plattformbedingte Unterschiede:
- In einem Windows-Konsolenfenster sind als Spalten- und Zeilenzahl alle Werte größer als 0 zulässig.
- In einer Vollbild-Konsole unter DOS oder Windows hängen die zulässigen Werte von der Hardware ab.
- Linux erlaubt Anwendungen nicht, die Größe des Konsolenfensters zu ändern.
Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.15 kann WIDTH bei Dateien, Druckern oder Geräten eingesetzt werden.
Siehe auch:
WIDTH (Funktion), LOCATE (Anweisung), Konsole
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|