LabVIEWForum.de
Eingabe bei deaktiviertem Element verhindern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Eingabe bei deaktiviertem Element verhindern (/Thread-Eingabe-bei-deaktiviertem-Element-verhindern)



Eingabe bei deaktiviertem Element verhindern - Mr.T - 03.06.2007 15:37

Hi zusammen!

Es geht um folgendes: In ein Ausgabefeld werden Daten geschrieben - woher auch immer. So wie hier im Beispiel werden die Daten eigentlich nur kopiert.

[attachment=6968]

Jetzt soll das aber nur genau dann geschehen, wenn das Feld in das geschrieben werden soll auch "aktiv" ist, also nicht ausgeraut ist.

Dazu habe ich mir was "gebastelt":

[attachment=6969]

Mir kommt das aber ein bissi blöd vor...ich starte hiermit mal wieder eine von meinen: "das muss doch anders auch gehen" - Posts...

Habt Ihr da Ideen?
Gruß!


Eingabe bei deaktiviertem Element verhindern - jg - 03.06.2007 16:01

Hallo,

bin mir jetzt nicht ganz sicher, ob ich alles so verstanden habe, wie du es haben willst, aber die Funktionalität deines Beispiels habe ich mal etwas vereinfacht.

[attachment=6970]

MfG, Jens


Eingabe bei deaktiviertem Element verhindern - eg - 03.06.2007 16:13

Es ist schon OK, wie du es gemacht hast. Nur ist einiges überflüssig in deinem VI. Ich hätte es so gemacht.

eg


Eingabe bei deaktiviertem Element verhindern - Mr.T - 03.06.2007 16:25

Hehe - klaro!

Ja das geht - die Struktur habe ich aus Gründen der Vielvariablerei im tatsächlichen Programm beibehalten... Ich brauche den Inhalt an mehreren Stellen - deshalb die Zuweisung ausserhalb der Case-AnweisungBig Grin
Das Zeug drumrum war eh nur Schnellkonstrukt fürs ForumBig Grin...

Zum Kern:

Letztlich ist mein Beispiel nicht aussagekräftig - Entschuldigung...<duck weg>. Die Zuweisung geschieht nicht auf Tastendruck, sondern auf in das Feld klicken:

[attachment=6975]
[attachment=6974]

Jetzt sieht das schon besser aus..aber geht das noch einfacher? Die Variablen brauche ich aber, da diese an anderen Programmstellen auch beschrieben werden - vorallem in anderen (parallelen) Schleifen - demnach mit Semaphores in den Cases...

Aber ist das so wie Du es gemacht hast gut mit der Wertänderung?! Somit wird der Inhalt ja bei Button gedrückt UND bei losgelassen zugewiesen - also zweimal direkt nacheinander...? Issoch nich jut! Oder?

Gruß!


Eingabe bei deaktiviertem Element verhindern - jg - 03.06.2007 16:38

Hi, Sonny,

also bei meinem Bsp wird nicht 2x beschrieben, da ich die Mechanical Action deines Schreiben-Buttons auf Latch geändert habe.

Ansonsten fällt mir zu deinem letzten Bsp nur noch ein, wie schon von mir vorgeschlagen, den Ausgang der Property Node direkt mit der Case-Struktur zu verbinden und auf den Vergleich vorher zu verzichten.

Alles andere komplizierte (sprich Durchschleifen der Strings) brauchst du ja wohl, so wie du es erklärst.

MfG, Jens


Eingabe bei deaktiviertem Element verhindern - Mr.T - 03.06.2007 20:58

Hmm....

tatsächlich....mit latch gibt es nur eine Wertänderung...warum verstehe ich das nicht?

So als Gipser:

Latch macht nen Impuls - also doch auch 2xWertänderung (von 0->1 und wieder von 1->0)... Warum wird der Case dann nur einmal ausgeführt!? Oder steht das irgendwo in der Hilfe...Big Grin...mal stöbern...

Aber mich stört dieser vergleich mit dem aktuellen Status des Elementes trotzdem noch (das ursprüngliche ProblemBig Grin) - das muss doch auch anders gehen. Schliesslich lässt das System ja auch keinen klick hinein zu geschweige denn das hineinschreiben...dann muss ich doch diese "Sperre" die schon da ist direkt verwenden können...

Weiter Ideen?

Gruß


Eingabe bei deaktiviertem Element verhindern - Lucki - 04.06.2007 06:58

' schrieb:Latch macht nen Impuls - also doch auch 2xWertänderung (von 0->1 und wieder von 1->0)... Warum wird der Case dann nur einmal ausgeführt!?
Mit 2X Wertänderung hast Du zwar recht, aber: Die Ereignisstruktur reagiert eben nicht auf Wertänderungen an sich, sondern nur auf Wertänderungen infolge manueller Bedienung (Ausnahme: Eigenschaftsknoten "Wert signalisierend") Im Falle des Latch wird die Taste durch Bedieneingriff gedrückt (die Wertänderung false-->true wird beim Loslassen der Taste wirksam). Beim Auslesen des Wertes (also noch nicht beim Loslassen der Taste selbst) wird sie auf false zurückgesetzt - progammgesteuert, und das ist kein Ereignis.

In einem der Postings wurde die Operation "bis zum Loslassen schalten" gewählt. Hierbei kommt es zu zwei Ereignissen (ich würde das als fehlerhaftes Verhalten bezeichnen). Warum 2 Ereignisse? Weil dann die direkte Ursache für das Rücksetzen des Schalters das Loslassen des Mausknopfes ist, also ein zweites, wertänderndes Bedienereignis.

Ich komme mit folgender Strategie immer bestens zurecht:

Vergiss die 6 möglichen Varianten für das Schaltverhalten, es gibt nur zwei, die überhaupt einen Sinn machen:

Nr. 1: "Beim Drücken schalten" (Der Schalter muß dann entweder mit lokaler Variablen zurückgesetzt werden, oder er muß zum zweiten Mal gedrückt werden.

Nr. 5: Latch beim Loslassen: Die Taste wird gedrückt, die Wertänderung wird bim Loslassen wirksam, die Taste bleibt aber weiterhin gedrückt, und zwar solange, bis sie gelesen wird.

NB: Meine Universalmethode, um schnell festzustellen ob ein Ereignis (ein oder mehrere Male) ausgeführt wird, ist das temporäre Einfügen des VI "Signalton" in den Ereigniscase.