F: Wie zeige ich vorübergehend Text in einem Fenster an Bildschirmpositionen ohne Text zum Zuordnen / Überlagern an?
Ich bin mit der Grundidee hinter Texteigenschaften und Überlagerungen vertraut (siehe auch diesen Thread ), habe sie einige Male verwendet, bin aber keineswegs mit ihnen vertraut . Mein begrenztes Verständnis ist, dass es Text zum Eigenmachen oder Überlagern geben muss, aber ich frage mich, wie man Abschnitte eines Fensters verwendet, in denen kein Text enthalten ist.
Hier ist ein Screenshot für ein Beispiel:
Wie kann man Text (vorübergehend) in eines der roten Kästchen im Screenshot einfügen, dh in das Leerzeichen rechts neben dem Text oder unter die letzte Zeile im Puffer?
insert
Text in den Puffer schreiben und diesen anpassen?Antworten:
Ich habe ein funktionierendes Beispiel für eine Funktion erstellt, die eine Zeichenfolge verwendet und diese vorübergehend mit einem Timeout nach dem Puffertext anzeigt:
Die folgende Beschwörung führt zu Ihrem unteren roten Kästchen:
Der Grund dafür ist, dass Overlays Markierungen als Positionen verwenden, zwischen denen angezeigt werden soll. Wenn Sie die äußerste Position als Anfang und Ende der Überlagerung verwenden, können Sie mithilfe der Eigenschaft Text danach anzeigen
after-string
. Da Überlagerungen den richtigen Text enthalten können, habe ich ihn so eingerichtet, dass er eingerückt und mit Leerzeichen versehen ist.Das andere Beispiel kann dieselbe Idee verwenden, um Text nach dem Zeilenende anzuzeigen:
Der folgende Aufruf führt zu Ihrem Beispiel für das rote Feld auf der rechten Seite:
Sie können viel verrückter werden und Gesichter hinzufügen, um diese Überlagerungen von Puffertext zu unterscheiden, sie länger als für eine Zeitüberschreitung anzuzeigen, ihre Position anzupassen, zu erkennen, wenn kein leerer Raum vorhanden ist, und normale Überlagerungen von richtigem Text zu verwenden usw. Ich empfehle, einen Blick darauf zu werfen Der Quellcode des Unternehmensmodus, da er sehr gut lesbar ist und eine aufwändigere (und meist fehlerfreie) Verwendung von Overlays zum Erstellen eines flexiblen Popup-Menüs mit den vorgeschlagenen Funktionen demonstriert.
quelle
Mit der Funktion können Sie vorübergehend Text in einem Puffer anzeigen
momentary-string-display
. Es wird eine Meldung und eine Position im Puffer benötigt.Diese:
platziert die Zeichenfolge "Hallo" an Position 200 im Puffer. Der gesamte andere Text wird an dieser Stelle zur Seite verschoben, um Platz für "Hallo Welt" zu schaffen. Es wird jedoch alles so wiederhergestellt, wie es war, als Sie eine beliebige Taste gedrückt haben.
Sie benötigen keinen Text im Puffer, um Überlagerungen zu erstellen, obwohl dies eine Voraussetzung für Texteigenschaften ist. Hier ist eine Überlagerung mit einer Breite von Null, die dazu führt, dass zusätzlicher Text angezeigt wird:
Beachten Sie, dass diese Überlagerung den Puffertext wegschiebt. Der Text wird an der angegebenen Position nicht abgedeckt.
Es scheint nicht möglich zu sein, eine Überlagerung an einer Position im Puffer zu platzieren, die größer als
point-max
/ istbuffer-size
, dh Sie können wahrscheinlich keinen Text an einer bestimmten Position unterhalb des Puffertextes platzieren, es sei denn, Sie hacken diese Einschränkung. Sie können natürlich Text direkt nach dem Puffertext mit derafter-string
Eigenschaft auf einer Überlagerung platzieren, die an derpoint-max
Position befestigt ist .quelle