Bezeichnung
CreateTextObject -- erzeugt ein Textobjekt
Übersicht
[id] = CreateTextObject(id, text$[, table])
Beschreibung
Dieser Befehl erzeugt ein neues Textobjekt, das die durch den in 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:
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 der Befehl 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:
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.

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 CreateTextObject() 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 Stiftsatz verwendet, der SetDrawPen() verwendet. (V9.0)

Linespacing:
Dieser Tag kann verwendet werden, um die Abstandspixel zwischen Zeilen anzupassen. Er kann auf einen positiven oder negativen Wert eingestellt werden. Ein negativer Wert schiebt die Zeilen näher zusammen, während ein positiver Wert den Abstand zwischen den Zeilen vergrößert. Ein Wert von 0 bedeutet kein benutzerdefinierter Zeilenabstand. Voreingestellt ist 0. (V10.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)

NoAdjust:
Beim Zeichnen von Textobjekten mit DisplayTextObject() positioniert Hollywood sie so, dass sie aussehen, als wären sie mit TextOut() gezeichnet worden, was bedeutet, dass sie gegebenenfalls nach links und oben versetzt werden könnten. Teile einiger Zeichen sind so konzipiert, dass sie im Bereich der vorherigen Zeichen erscheinen. Dies ist häufig bei Zeichen wie "j" der Fall. Wenn Sie das nicht möchten, setzen Sie 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.

Eingaben
id
ID des neuen Textobjekts oder Nil für die automatische ID-Auswahl
text$
Text für das Textobjekt
table
optional: Eine Tabelle mit weiteren Optionen
Rückgabewerte
id
optional: ID des neuen Textobjekts; wird nur zurückgegeben, wenn Sie beim Argument id Nil angegeben haben (siehe oben)
Beispiel
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.

Navigation zeigen