Eingabe ohne ENTER abschließen?

sailor

Level-1
Beiträge
641
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Frreunde,

Sitze hier in Norwegen und die Operator´s vergessen jedesmal nach einer Eingabe ENTER zu drücken. Sag ich, muß sein => Sagense muß gehen => sag ich, legg mich => guckense blöd.

Gibt es irgendwie eine Möglichkeit, ohne ENTER, bei Verlassen des Eingabefeldes o.ä. den Wert zu übernehmen? (WINCCFlex)

Bitte nicht "Geht nicht" schreiben, weil ich das sonst gleich an die Norweger weitergebe.:D
Gruß
Sailor
 
Bitte nicht "Geht nicht" schreiben,
Also, geht schon! :p

Aber ich weiß nicht wie, ob Dir dass jetzt weiterhilft? ;)

Spaß beiseite!
Ne ich glaube das geht wirklich nicht.

Alternativ könntest Du satt dem Eingabefeld je eine Plus Minus Taste nehmen, mit denen Du den Sollwert verkleinerst oder vergrößerst.
 
Hallo,

leider habe ich nur WinCC und das Problem hatte ich schon einmal und wollte das auch lösen

Es gibt für E/A - Felder unter Ereignis - Propertythemen - Ausgabe/Eingabe - Eingabe - Änderung. Und dahinter kannst du ein Script schreiben. Der folgende C-Script ist nichts anderes als das bei einer Wertänderung der Wert in eine Variable geschrieben wird und dann dein EA Feld mit dieser neuen Variable beschrieben wird.

Hier das C-Script:

#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, char* value)
{
double wertakt;
double wertneu;

wertakt = GetTagFloat("Variablenname");//Alter Wert
wertneu = GetInputValueDouble(lpszPictureName,lpszObjectName);//Neuer Wert

SetTagFloat("Variablenname",(float)wertneu);
SetOutputValueDouble(lpszPictureName,lpszObjectName,wertneu); //Return-Type: BOOL
}

Wie das in WinCC Flex ausschaut kann ich leider nicht sagen.

Viel Spass
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bitte nicht "Geht nicht" schreiben, weil ich das sonst gleich an die Norweger weitergebe.:D

Fiese Variante:

Wenn zu blöd zum ENTER drücken --> dann Kündigung!

Zum Tür öffnen muss man ja auch oft genug (nicht immer)
die Klinke runterdrücken oder ist das dort auch ein Problem.

Was heißt eigentlich "Geht nicht" auf Norwegisch ---hmm :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Scheisse, geht doch!

Geht doch: Beim Aktivieren des E/A-Feldes eine interne Variable (Bool) auf 1. Bei Ereignisse des Feldes mit "Eingabe abgesclossen" das Bit zurücksetzen. In den Animationen des Feldes mit diesen Bit den Hintergrund des Feldes orange machen. Bei Bildwechseln auf ein unbedeutentes Objekt verweisen. Bei zufälligen klicken aufs Feld wird das auch orange, na und. Hat er davon, die Nervensäge.

SKOL
:sm19:
Gruß aus Norwegen

Noch was, Mit nen Skript bei Ereignisse/Deaktivieren könnte der Wert auch ünbernommen werden, oder. Hat da wer was passendes?
Mag aber heut nich mehr.
 
Zuletzt bearbeitet:
@ Sailor
Dann wäre es für die Zukunft auch sehr sinnvoll wenn du erwähnen könntest dass dein Panel scriptfähig ist...
 
noch was... Das mit dem Farbumschlag mag dir jetzt vielleicht noch toll vorkommen... Was ist aber wenn du die Grenzwerte der Variablen auswertest (Farbliche Darstellung)? Das geht jetzt wohl eher nicht mehr...

Wie wär es
Aktivieren -> Skript : Speichere den Aktuellen Wert, Setze Bit "VergleichAktiv"

Deaktivieren -> Skript: Wenn Bit "VergleichAktiv" Vergleiche aktuellen Wert mit gespeichertem Wert - Wenn nicht unterschieldich Systemmeldung...

Eingabe abgeschlossen -> Rücksetze Bit "VergleichAktiv" (Es wurde Enter gedrückt und beim Deaktivieren braucht das Skriptergebnis nicht anschlagen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schnittstelle: Aktion (0=nichts, 1=Aktivieren, 2=Deaktivieren, 3=Eingabe abgeschlossen)
Paramter1 = Variableninhalt


Code:

Select Case Aktion
Case 0
' Nichts
Case 1 'Aktivieren: Aktuellen Wert global Speichern
SmartTags("Allgemein\Temporaer\TempFloat") = Parameter1
SetBit SmartTags("Allgemein\Temporaer\TempBool")
Case 2 ' Deaktivieren
If ((SmartTags("Allgemein\Temporaer\TempFloat") = Parameter1) And SmartTags("Allgemein\Temporaer\TempBool")) Then
ShowSystemAlarm "Eingabe nicht abgeschlossen"
ResetBit SmartTags("Allgemein\Temporaer\TempBool")
End If
Case 3 ' Eingabe abgeschlossen
ResetBit SmartTags("Allgemein\Temporaer\TempBool")
End Select



Das ist ungetestet!!!! Zwei globale Variablen brauchst du auch! Und das hier geht für ne Float. Sollte es Variable sein müsstest du beim Aufruf prüfen von welchem Typ Paramter1 ist und die Case dementsprechend abändern...
 
Zurück
Oben