# In Webvisu Text über Tastatur ändern



## Ka-Adler (26 April 2022)

Hallo, 
Ich möchte über die Webvisu ein zuvor erstelltes Textfeld ( im Textfeld trage ich "unknown" ein) einfach per Tastatur quasi vor Ort ändern.
Das hat den Vorteil das ich nur ein Programm brauche, und das je nach einbauort quasi beschriften kann! 
Ich arbeite mit ecockpit! 
Habe es schon hinbekommen eine textvariable zu ändern mit <PREFIX> aber ich möchte ja keine textvariable ändern, sondern nur einen Text in einem Rechteck ändern! 
Wäre super wenn mir jemand helfen kann!


----------



## KLM (27 April 2022)

Moin, irgendwo musst der Wert des Textfeldes gespeichert werden. Wenn Du einen statischen Text einfügst liegt der Wert in der Textliste (z.B. für eine Sprachübersetzung) und damit als Datei auf dem Dateisystem des Controllers. Wenn der Wert variabel sein soll, kommst Du um eine Variable nicht herum. Durch die Deklaration der Variable reservierst Du Speicherplatz, der den Wert hält. Wenn der Wert spannungsausfallsicher sein soll, muss sogar eine Variable aus der persistenten Liste verknüpft werden. Wenn das nicht erforderlich ist, reicht auch eine lokal im Schnittstelleneditor deklarierte Variable (füg einfach "VAR" und "END_VAR" manuell ein).


----------



## Ka-Adler (28 April 2022)

KLM schrieb:


> Moin, irgendwo musst der Wert des Textfeldes gespeichert werden. Wenn Du einen statischen Text einfügst liegt der Wert in der Textliste (z.B. für eine Sprachübersetzung) und damit als Datei auf dem Dateisystem des Controllers. Wenn der Wert variabel sein soll, kommst Du um eine Variable nicht herum. Durch die Deklaration der Variable reservierst Du Speicherplatz, der den Wert hält. Wenn der Wert spannungsausfallsicher sein soll, muss sogar eine Variable aus der persistenten Liste verknüpft werden. Wenn das nicht erforderlich ist, reicht auch eine lokal im Schnittstelleneditor deklarierte Variable (füg einfach "VAR" und "END_VAR" manuell ein).


OK habe deinen Gedankengang verstanden, nur wie mach ich das nun genau? 
Ich erstelle eine Variable die persistent sein soll, zum Beispiel mit dem Namen Bahnhof und als Wert trage ich DWORD ein? Dann setze ich in der visu ein Rahmen mit dem Text Bahnhof und als variable die Bahnhof variable! Und on mouse klick was muss ich da genau machen?


----------



## KLM (28 April 2022)

Ein Text hat den Datentyp STRING.
1. Du deklarierst in einer persitenten Liste z.B. "RPL" eine Variable an, z.B. "sBahnhof : STRING;"
2. In der Visu fügst Du ein Objekt ein, z.B. ein _Textfeld_
3. Im _Textfeld _fügst Du bei der Eigenschaft _Texte_ den Platzhalter _%s_ ein und verknüpfst die Variable "RPL.sBahnhof" in der Eigenschaft _Textvariablen_
4. Im _Textfeld _fügst Du bei der Eigenschaft _Eingabekonfiguration _> _OnMouseDown _die Option _Variable schreiben_ ein und belässt die Voreinstellung (d.h. die Checkbox _Textausgabevariable verwenden_ muss gesetzt sein)
fertig
Geht natürlich auch für ein DWORD, aber Du wolltest ja einen Text?! Für nummerische Variablen kannst Du sonst auch _%i_ als Platzhalter verwenden.

Edit: Du kannst die Variable natürlich auch noch mit einem Initial Wert versehen: "sBahnhof : String := 'unknown';"


----------



## Ka-Adler (28 April 2022)

Vielen Dank hat gleich auf Anhieb funktioniert! 
Vielen Dank!


----------



## Kaspar (28 April 2022)

Wenn Du möchtest kann ich dir ein Beispielprogramm senden das läuft.
Schreibe mir ein Mail an Kasparboog@bluewin.ch


----------

