TextOut(x, y, text$[, table])
text$
angegebenen Text an der Stelle
aus, die durch die Koordinaten x
und y
festgelegt ist.
Sie hat den Vorteil, dass Sie Hollywoods spezielle Konstanten
als Koordinaten benutzen (z.B. #CENTER
, #BOTTOM
...) was bei
dem Befehl Print() nicht möglich ist, da Locate() diese Richtungskonstanten
nicht verarbeiten kann.
Wenn Ebenen aktiviert sind, fügt dieser Befehl eine neue Ebene
vom Typ #TEXTOUT
dem Ebenenstapel hinzu.
Ab Hollywood 2.5 können Sie die Textformatierungen von Hollywood
in der Zeichenkette text$
an CreateTextObject() übergeben.
Mit diesen Formatmarkierungen können Sie die Schriftart und
Farbe Ihres Textes on-the-fly ändern. Formatmarkierungen beginnen
und enden immer mit einer eckigen Klammer ('['). Wenn Sie nur
eine eckige Klammer ausgeben möchten, müssen Sie zwei eckige
Klammern ('[[') verwenden. Bei nur einer eckigen Klammer erwartet
Hollywood immer eine Formatmarkierung. Weitere Informationen
zu diesem Thema finden Sie im Kapitel Textformatierungen.
Seit Hollywood 4.0 hat sich die Syntax von diesem Befehl etwas
verändert. Während die alte Syntax noch wegen der Kompatibilität
unterstützt wird, sollten Sie für neue Skripts die aktuelle
Syntax verwenden, welche die Tabelle table
als Argument 4
akzeptiert. Die Tabelle kann die folgenden Elemente enthalten:
Align:
#LEFT
#RIGHT
#CENTER
#JUSTIFIED
Für Align
ist #LEFT
voreingestellt.
WordWrap:
TextOut()
einen automatischen Wortumbruch für Sie durchführen. Mit diesem
Tag können Sie eine maximale Breite für Ihren Text angeben.
TextOut()
wird dann den Wortumbruch verwenden, um sicherzustellen,
dass kein Text über dieses Limit hinausgeht. Wenn Sie dieses
Argument nicht oder auf 0 setzen (was auch voreingestellt ist),
ist der Text so breit wie er benötigt wird. Ab Hollywood 9.1
können Sie auch bedingte Bindestriche oder Leerzeichen mit Nullbreite
verwenden, um den Wortumbruch anzupassen. Da es sich jedoch
um Unicode-Zeichen handelt, müssen Sie sicherstellen, dass Sie
in diesem Fall die UTF-8-Codierung verwenden.
Encoding:
text$
anzugeben. Voreingestellt ist die Standardcodierung
für die Textbibliothek, welche mit dem Befehl SetDefaultEncoding()
festgelegt ist. Siehe SetDefaultEncoding für Details. (V4.7)
Color:
TextOut()
die Farbe, die mit dem
Befehl SetFontColor() festgelegt wurde.
Pen:
#PALETTEMODE_PEN
ist, kann dieser Tag
verwendet werden, um den Stift festzulegen, der zum Zeichnen
des Textes verwendet werden soll. Wenn der Palettenmodus #PALETTEMODE_PEN
ist und Pen
nicht angegeben ist, wird stattdessen der Stift
verwendet, der mit SetDrawPen() gesetzt
wurde. (V9.0)
Linespacing:
Charspacing:
Tabs:
TextOut()
übergeben, Tabulatoren enthält und Sie diesen Tag nicht setzen,
werden alle Tabulatoren in Leerzeichen umgewandelt. (V9.0)
ListMode:
True
, um TextOut()
in den Listenmodus
zu versetzen. Im Listenmodus können Sie mit TextOut()
geordnete
und ungeordnete Listen erstellen. Im Listenmodus müssen Sie
in der Zeichenkette, die Sie an TextOut()
übergeben, Tabulatoren
verwenden, um die gewünschte Einrückung zu signalisieren. Standardmäßig
verwenden alle Listenelemente das in DefListBullet
angegebene
Aufzählungszeichen. Es ist auch möglich, TextOut()
anzuweisen,
benutzerdefinierte Aufzählungszeichen zu verwenden, indem Sie
den Tag ListBullet
setzen. Dasselbe gilt für die Einrückung,
den Versatz und Abständen der Liste, wobei die Standardwerte
mit DefListIndent
, DefListOffset
sowie DefListSpacing
und
die benutzerdefinierten Werte mit ListIndent
und ListOffset
festgelegt werden können. Weitere Informationen zu all diesen
Optionen finden Sie weiter unten. Beachten Sie auch, dass sich
ListMode
und Tabs
gegenseitig ausschließen. Sie können nicht
beide gleichzeitig verwenden. (V9.0)
DefListBullet:
TextOut()
im Listenmodus
befindet. Dies kann auf ein Unicode-Zeichen (als numerischer
Codepunkt, nicht als Zeichenkette!) oder eine der folgenden
Konstanten gesetzt werden:
#BULLET_DASH:
#BULLET_CROSS:
#BULLET_CIRCLE:
#BULLET_HOLLOWCIRCLE:
#BULLET_BOX:
#BULLET_CHECKMARK:
#BULLET_ARROW:
#BULLET_DIAMOND:
#BULLET_NUMERIC:
#BULLET_NUMERICSINGLE:
#BULLET_NUMERICDOUBLE:
#BULLET_LALPHA:
#BULLET_LALPHASINGLE:
#BULLET_LALPHADOUBLE:
#BULLET_UALPHA:
#BULLET_UALPHASINGLE:
#BULLET_UALPHADOUBLE:
#BULLET_LROMAN:
#BULLET_LROMANSINGLE:
#BULLET_LROMANDOUBLE:
#BULLET_UROMAN:
#BULLET_UROMANSINGLE:
#BULLET_UROMANDOUBLE:
#BULLET_NONE:
Wenn Sie in Ihrer Liste verschiedene Arten von Aufzählungszeichen
verwenden müssen, müssen Sie stattdessen den Tag ListBullet
verwenden. Weitere Informationen finden Sie unten.
Beachten Sie auch, dass der Startversatz von nummerierten Aufzählungstypen
wie #BULLET_NUMERIC
, #BULLET_LALPHA
usw. mit den Tags DefListOffset
und ListOffset
festgelegt werden kann. Weitere Informationen
finden Sie unten.
Standardmäßig verwenden Aufzählungszeichen die Farbe, welche mit SetFontColor() eingestellt wurde. Um eine andere Farbe einzustellen, verwenden Sie den Befehl SetBulletColor(). Siehe SetBulletColor für Details. (V9.0)
ListBullet:
TextOut()
extrahiert dann für jede neue
Liste, die er beginnt, einen neuen Aufzählungstyp aus Ihrer
Tabelle. Wie bei DefListBullet
können die einzelnen Elemente
in der Tabelle, die Sie an ListItems
übergeben, entweder numerische
Unicode-Codepunkte oder vordefinierte #BULLET_XXX-Konstanten
sein, wie oben beschrieben. Wenn in ListBullet
mehr Listen
als Tabellenelemente vorhanden sind, wird das in DefListBullet
angegebene Aufzählungszeichen verwendet. (V9.0)
DefListIndent:
ListIndent
erfolgen.
Siehe unten für weitere Details. (V9.0)
ListIndent:
TextOut()
extrahiert dann für jede neue Liste, die er beginnt,
einen neuen Einzugswert aus Ihrer Tabelle. Wenn in ListIndent
mehr Listen als Tabellenelemente vorhanden sind, wird die in
DefListIndent
angegebene Standardeinrückung verwendet. (V9.0)
DefListOffset:
#BULLET_NUMERIC
oder #BULLET_LALPHA
verwenden, können Sie diesen Tag verwenden,
um einen Startversatz für die Nummerierung anzugeben. Beachten
Sie, dass Versätze ab 0 gezählt werden. Wenn Sie hier also einen
Versatz von 0 angeben, beginnt die Nummerierung bei #BULLET_NUMERIC
bei 1 und bei #BULLET_ALPHA
bei "a". Der Standardwert für dieses
Tag ist 0. Sie können auch benutzerdefinierte Versatzstufen
für bestimmte Listen angeben. Dies kann mithilfe des Tags ListOffset
erfolgen, siehe unten für weitere Details. (V9.0)
ListOffset:
TextOut()
extrahiert
dann für jede neue Liste, die er startet, einen neuen Listen-Versatz-Wert
aus Ihrer Tabelle. Wenn in ListOffset
mehr Listen als Tabellenelemente
vorhanden sind, wird der in DefListOffset
angegebene Standardlisten-Versatz
verwendet. (V9.0)
DefListSpacing:
ListSpacing
erfolgen, siehe unten für
weitere Einzelheiten. (V9.1)
ListSpacing:
TextOut()
extrahiert dann einen neuen Abstandswert aus
Ihrer Tabelle für jede neue Liste, die neu beginnt. Wenn in
ListSpacing
mehr Listen als Tabellenelemente vorhanden sind,
wird der in DefListSpacing
angegebene Standardabstandswert
verwendet. (V9.1)
FrameMode:
TextOut()
im Listenmodus verwendet wird und Ebenen aktiviert
sind, hat die resultierende Ebene vom Typ #TEXTOUT
mehrere Einzelbilder,
die Sie mit NextFrame() oder allen anderen
Ebenenbefehlen, die Animationsebenen unterstützen, durchlaufen
können. Dadurch ist es möglich, nacheinander durch die Listeneinträge
zu blättern oder einen Eintrag nach dem anderen anzuzeigen.
Das erste Einzelbild enthält immer alle Listenelemente. Der
Inhalt der anderen Einzelbilder hängt davon ab, was im Tag FrameMode
angegeben wurde. Dieser Tag kann wie folgt eingestellt werden:
#FRAMEMODE_SINGLE:
#FRAMEMODE_FULL:
Wenn nicht angegeben, ist FrameMode
standardmäßig auf #FRAMEMODE_FULL
eingestellt. Beachten Sie, dass Sie mit dem Tag Frame
(siehe unten)
festlegen können, welches Einzelbild anfänglich sichtbar sein
soll. (V9.0)
Frame:
TextOut()
im Listenmodus verwendet wird und Ebenen aktiviert
sind, hat die resultierende Ebene vom Typ #TEXTOUT
mehrere Einzelbilder,
die Sie mit NextFrame() oder allen anderen
Ebenenbefehlen, die Animationsebenen unterstützen, durchlaufen
können. Dadurch ist es möglich, nacheinander durch die Listeneinträge
zu blättern oder einen Eintrag nach dem anderen anzuzeigen.
Das erste Einzelbild enthält immer alle Listenelemente. Der
Inhalt der anderen Einzelbilder hängt davon ab, was im Tag FrameMode
angegeben wurde (siehe oben). Der Tag Frame
kann verwendet
werden, um das Einzelbild anzugeben, das zuerst sichtbar sein
soll. Einzelbilder werden ab 1 gezählt. (V9.0)
SimpleList:
True
gesetzt ist, extrahiert TextOut()
nicht nacheinander
die Konfiguration der Listenaufzählungszeichen aus den Tabellen
ListBullet
usw., sondern verwendet einfach statisch das Element
am angegebenen Tabulatorindex. D.h. Tabulatorposition 1 verwendet
immer das Aufzählungszeichen, das bei Index 1 in der Tabelle
ListBullet
angegeben ist, Tabulatorposition 2 verwendet das
Aufzählungszeichen, das bei Index 2 in der Tabelle ListBullet
angegeben ist usw. Dies schränkt Ihre Flexibilität ein, kann
aber die Arbeit erleichtern, wenn Sie immer dieselbe Konfiguration
für jede Tabulatorposition haben wollen. (V9.1)
Darüber hinaus kann das optionale Tabellenargument table
auch eine oder mehrere der Standard-Tags zum Zeichnen
enthalten. Siehe Standard-Tags zum Zeichnen für Details.
Beachten Sie, dass Hollywood nur westlichen Standard von links nach rechts basierten Text auf horizontalen Linien ausgerichtet unterstützt. Von rechts nach links und vertikalem Text wird derzeit nicht unterstützt.
Beachten Sie auch, dass beim Schreiben auf ein palettenbasiertes
Ziel und wenn der Palettenmodus auf #PALETTEMODE_PEN
eingestellt
ist, dieser Befehl mit dem Stift über SetDrawPen()
schreibt anstelle der Schriftfarbe, welche mit dem Befehl SetFontColor()
oder dem obigen Tag Color
gesetzt wurde.
TextOut(#CENTER, #CENTER, "Hello World!")Der obige Code gibt "Hello World!" in der Mitte des Displays aus.
For Local k = 100 To 600 Step 100 Do Line(k, 0, k, 480, #RED) TextOut(0, 0, "One\tTwo\tThree\tFour\tFive\tSix", {Tabs = {100, 200, 300, 400, 500}})Dieser Code zeigt, wie man Tabulatoren mit
TextOut()
verwendet.
SetFont(#SANS, 18) TextOut(0, 0, "Pizzas\n".. "\tProsciutto\n".. "\tFunghi\n".. "\tMargarita\n".. "Drinks\n".. "\tAlcoholic\n".. "\t\tBeer\n".. "\t\tWine\n".. "\tNon-alcoholic\n".. "\t\tCoke\n".. "\t\tWater", {ListMode = True, DefListBullet = #BULLET_CIRCLE, ListBullet = {#BULLET_DASH}})Der obige Code zeigt, wie man eine Liste mit
TextOut()
erstellt.