[id] = CreateTextObject(id, text$[, table])
text$
angegebenen Daten enthält und weist ihm die in id
eingetragene ID zu. Wenn Sie Nil in id
übergeben, wird CreateTextObject()
automatisch eine freie ID
auswählen und zurückgeben. Der Text wird in der aktuellen Farbe
und mit der aktuell ausgewählten Schrift dargestellt.
Der Vorteil von Textobjekten gegenüber dem Standardtext (Ausgabe zum Beispiel über den Befehl Print()) ist, dass Sie Textobjekte einfach auf dem Bildschirm positionieren, entfernen oder mit dem Befehl MoveTextObject() verschieben/scrollen können.
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.
In Hollywood 5.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 neue Skripts die neue Syntax verwenden,
die die Tabelle table
als Argument akzeptiert. Die Tabelle
kann die folgenden Elemente enthalten:
Align:
#LEFT
#RIGHT
#CENTER
#JUSTIFIED
Für Align
ist #LEFT
voreingestellt.
WordWrap:
CreateTextObject()
ein automatischer Wortumbruch für Sie durchführen.
Mit diesem Tag können Sie eine maximale Breite für Ihren Text angeben.
CreateTextObject()
wird dann einen 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.
Color:
CreateTextObject()
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 Stiftsatz
verwendet, der SetDrawPen() verwendet. (V9.0)
Linespacing:
Charspacing:
NoAdjust:
NoAdjust
auf True
.
In diesem Fall führt der Aufruf von DisplayTextObject() niemals zu
einer Anpassung der Positionierung, sondern das Textobjekt wird strikt an der
angegebenen Position gezeichnet. Die von Hollywood auf ein Textobjekt
angewendeten Anpassungsoffsets für den Fall, dass NoAdjust
False
ist,
können durch Abfragen der Tags #ATTRADJUSTX- und #ATTRADJUSTY
ermittelt werden. Voreingestellt ist False
. (V10.0)
Beachten Sie auch, 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 außerdem, dass beim Zeichnen auf ein palettenbasiertes Ziel
und wenn der Palettenmodus auf #PALETTEMODE_PEN
eingestellt ist,
dieser Befehl mit dem Stift über SetDrawPen()
zeichnet anstelle der Farbe, welcher mit dem Befehl SetFontColor( )
oder dem Tag Color
von oben gesetzt wurde.
id
Nil angegeben
haben (siehe oben)SetFontColor(#RED) SetFont("times.font", 18) CreateTextObject(1, "Hello World!") DisplayTextObject(1, #CENTER, #CENTER)Der obige Code erzeugt ein Textobjekt mit der Schriftart "times" (Größe 18) und mit der Farbe Rot. Der Text ist "Hello World!". Nach der Erstellung wird das Textobjekt in der Mitte des Bildschirms angezeigt.