Bezeichnung
TextOut -- gibt Text auf dem Bildschirm aus
Übersicht
TextOut(x, y, text$[, table])
Beschreibung
Dieser Befehl gibt den in 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:
Ermöglicht die Angabe der Ausrichtung des Textes nach einem Zeilenumbruchzeichen. Folgende Ausrichtungen werden unterstützt:

#LEFT
Linksbündig.

#RIGHT
Rechtsbündig.

#CENTER
Zentriert.

#JUSTIFIED
Gibt den Text in Blocksatz aus. (V7.0)

Für Align ist #LEFT voreingestellt.

WordWrap:
Wenn Sie diesen zusätzlichen Parameter angeben, kann 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:
Dieser Parameter kann verwendet werden, um die Zeichencodierung von 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:
Mit diesem Tag können Sie die Textfarbe angeben. Die Farbe muss als ARGB-Wert angegeben werden. Wenn Sie diesen Tag nicht angeben, verwendet TextOut() die Farbe, die mit dem Befehl SetFontColor() festgelegt wurde.

Pen:
Wenn der Palettenmodus #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:
Mit diesem Tag können Sie den Abstand zwischen den Zeilen anpassen. Sie können dies auf einen positiven oder negativen Wert setzen. Ein positiver Wert vergrößert den Zeilenabstand, ein negativer Wert verringert ihn. (V9.0)

Charspacing:
Ermöglicht Ihnen, den Abstand zwischen den Zeichen anzupassen. Sie können diesen auf einen positiven oder negativen Wert setzen. Ein positiver Wert vergrößert den Abstand zwischen den Zeichen, ein negativer Wert verringert ihn. (V10.0)

Tabs:
Wenn Sie Tabulatoren verwenden möchten, müssen Sie diesen Tag auf eine Tabelle setzen, die die gewünschten Tabulatoren enthält. Die Tabulatoren müssen als Pixelwerte relativ zur x-Position übergeben werden. Wenn die Zeichenkette, die Sie an TextOut() übergeben, Tabulatoren enthält und Sie diesen Tag nicht setzen, werden alle Tabulatoren in Leerzeichen umgewandelt. (V9.0)

ListMode:
Setzen Sie diesen Tag auf 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:
Verwenden Sie diesen Tag, um das Standardaufzählungszeichen festzulegen, das verwendet wird, wenn sich 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:
Strich. Das ist die Voreinstellung.

#BULLET_CROSS:
Kreuz.

#BULLET_CIRCLE:
Kreis.

#BULLET_HOLLOWCIRCLE:
Hohlkreis. (V9.1)

#BULLET_BOX:
Rechteck.

#BULLET_CHECKMARK:
Häkchen.

#BULLET_ARROW:
Pfeil.

#BULLET_DIAMOND:
Diamand.

#BULLET_NUMERIC:
Nummerierte Liste: 1. 2. 3...

#BULLET_NUMERICSINGLE:
Nummerierte Liste: 1) 2) 3)...

#BULLET_NUMERICDOUBLE:
Nummerierte Liste: (1) (2) (3)...

#BULLET_LALPHA:
Nummerierte Liste: a. b. c...

#BULLET_LALPHASINGLE:
Nummerierte Liste: a) b) c)...

#BULLET_LALPHADOUBLE:
Nummerierte Liste: (a) (b) (c)...

#BULLET_UALPHA:
Nummerierte Liste: A. B. C...

#BULLET_UALPHASINGLE:
Nummerierte Liste: A) B) C)...

#BULLET_UALPHADOUBLE:
Nummerierte Liste: (A) (B) (C)...

#BULLET_LROMAN:
Nummerierte Liste: i. ii. iii...

#BULLET_LROMANSINGLE:
Nummerierte Liste: i) ii) iii)...

#BULLET_LROMANDOUBLE:
Nummerierte Liste: (i) (ii) (iii)...

#BULLET_UROMAN:
Nummerierte Liste: I. II. III...

#BULLET_UROMANSINGLE:
Nummerierte Liste: I) II) III)...

#BULLET_UROMANDOUBLE:
Nummerierte Liste: (I) (II) (III)...

#BULLET_NONE:
Kein Aufzählungszeichen.

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:
Wenn Sie verschiedene Arten von Aufzählungszeichen in Ihrer Liste verwenden möchten, müssen Sie diesen Tag auf eine Tabelle setzen, die die einzelnen Aufzählungszeichen enthält, die Ihre Liste verwenden soll. 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:
Dieser Tag kann verwendet werden, um die Anzahl der Leerzeichen anzugeben, die zum Einrücken von Listenelementen verwendet werden sollen. Die Standardeinrückung ist 4, was bedeutet, dass Listenelemente standardmäßig mit 4 Leerzeichen eingerückt werden. Sie können auch benutzerdefinierte Stufen der Einrückung für bestimmte Listen angeben. Dies kann mit dem Tag ListIndent erfolgen. Siehe unten für weitere Details. (V9.0)

ListIndent:
Wenn Sie in Ihrer Liste verschiedene Einrückungsstufen verwenden möchten, müssen Sie diesen Tag auf eine Tabelle setzen, die die einzelnen Einrückungen enthält, die Ihre Liste verwenden soll. 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:
Wenn Sie einen nummerierten Aufzählungstyp wie #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:
Wenn Sie in Ihrer Liste verschiedene Versätze verwenden möchten, müssen Sie diesen Tag auf eine Tabelle setzen, die die einzelnen Versätze enthält, die Ihre Liste verwenden soll. 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:
Mit diesem Tag kann der Standardabstand angegeben werden, der zwischen den Elementen in den einzelnen Listen verwendet werden soll. Dies ist standardmäßig 0. Sie können auch benutzerdefinierte Abstandswerte für bestimmte Listen angeben. Dies kann durch die Verwendung des Tags ListSpacing erfolgen, siehe unten für weitere Einzelheiten. (V9.1)

ListSpacing:
Wenn Sie unterschiedliche Zeilenabstände für Ihre Listen verwenden möchten, müssen Sie diesen Tag auf eine Tabelle setzen, die die einzelnen Zeilenabstände enthält, die Ihre Listen verwenden sollen. 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:
Wenn 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:
Wenn Sie diesen Einzelbild-Modus verwenden, ist pro Einzelbild nur ein einziges Listenelement sichtbar, d.h. das Einzelbild 2 enthält nur das erste Listenelement, das Einzelbild 3 enthält nur das zweite Listenelement und so weiter.

#FRAMEMODE_FULL:
Wenn Sie diesen Einzelbild-Modus verwenden, sind immer auch alle vorherigen Listenelemente sichtbar. Das bedeutet, dass das Einzelbild 3 den ersten und den zweiten Listeneintrag enthält, das Einzelbild 4 die ersten drei Listeneinträge und so weiter.

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:
Wenn 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:
Wenn dies auf 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.

Eingaben
x
x-Position für den Text
y
y-Position für den Text
text$
Zeichenkette, welche ausgegeben wird
table
optional: Tabelle mit weiteren Konfigurationsmöglichkeiten (siehe oben) (V4.0)
Beispiel
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.

Navigation zeigen