Experte

Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
| Ein Gast hat folgendes geschrieben: | mal ne frage...
kann man eine mit print auf dem screen ausgegebene zeile wieder weglöschen? würde nämlich eine information gerne nur für eine bestimmte zeit zur verfügung stellen. |
Kurze Antwort: Nein, das geht nicht.
Lange Antwort: Nein, das geht nicht. Zumindest nicht, wenn man den Text im Hauptfenster ausgibt. Einmal geschrieben ist geschrieben. Hinzu kommt, dass Strings nicht wie in den meisten anderen Sprachen Felder einer bestimmten Länge oder Zeiger auf eine nullterminierte Zeichenkette sind, so dass man, wenn man Endungen abschneiden will oder Ähnliches, sich damit behelfen muss, den Text mit @output_stream 3 zunächst auf ein Hilfsfeld auszugeben. Aber auch dann kann man nur entscheiden, ob man den Text ausgibt, man kann nichts ausgeben und später wieder löschen.
Im oberen Fenster, das normalerweise dazu verwendet wird, die Statuszeile darzustellen, kann man den Cursor positionieren und Text löschen, indem man ihn einfach überschreibt. Text im oberen Fenster liegt immer über dem Text im Hauptfenster. Er ist immer in einer diktengleichen Schrift, in der alle Zeichen gleich breit sind, geschrieben und ist nicht automatisch invers dargestellt, auch wenn Statuszeilen in der Lib sich immer farblich vom Hauptfenster absetzen.
Mehr dazu steht in Abschnitt 42 des DM4. Dort steht auch, wie man zeitabhängige Ereignisse prpgrammiert, was dir vielleicht für das "eine bestimmte Zeit" helfen könnte. (Nicht, dass ich dächte, Text echtzeitbasiert wieder verschwinden zu lassen sei eine gute Idee.)
Das alles gilt nur, wenn du z-Code kompilierst, bei Glulx sieht es vielleicht anders aus. _________________ Every silver lining has a cloud. |
|