Problem mit Listbox - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Problem mit Listbox (/Thread-Problem-mit-Listbox) |
Problem mit Listbox - RomanT - 15.01.2008 19:43 Guten Abend allerseits. Meine drastisch vereinfachte Software (siehe Bild im Anhang, LV-Version 8.5 Fourth Quarter) wartet bei einer Evenstruktur auf das Ereignis "Maustaste gedrückt" einer Listbox (0 und mehrere Elemente auswählbar) auf dem Frontpanel. Tritt dieses Ereignis ein, so wird innerhalb der Evenstrukur der Wert der Listbox ausgelesen. In diesem Array stehen die Nummern der Elemente, welche in der Listbox selektiert sind. Dieses Array wird wiederum auf dem Frontpanel dargestellt. Selektiere oder deselektiere ich nun einzelne Elemente in der Listbox mit CTRL + Linke Maustaste oder SHIFT + Linke Maustaste, so führt dies häufig dazu, dass der Wert der Listbox nicht richtig ausgelesen wird und folglich auch falsch auf dem Frontpanel dargestellt wird. So fehlt beispielsweise manchmal ein Wert bei der Selektierung mit SHIFT oder es führt zu keiner Änderung wenn ich ein Element mit CTRL deselektiere. In meiner komplexeren Software, in welcher dieses Prinzip ebenfalls verwendet wird, ist es in der Regel so, dass beim mehrfachen an- und abwählen eines Elements mit CTRL der dem Element entsprechende Wert im Array enthalten ist, wenn ich das Element deselektiert habe, und nicht im Array enthalten ist, wenn ich das Element selektiert habe. Also genau falsch rum. Ist das bekannt und weiss jemand eine Lösung für dieses seltsame Verhalten? Vielen Dank im Voraus, Grüsse Thaller Problem mit Listbox - Y-P - 15.01.2008 19:52 Mit "Mouse Up" (auf dt. evtl. "Maustaste loslassen"?) und "Value Change" funktioniert es (vgl. Anhang). Brauchst Du unbedingt "Maustaste gedrückt"? [attachment=10688] Gruß Markus EDIT: Wenn Du die Maustaste drückst, dann wird das Event ausgelöst. Deshalb werden die Werte, die zu dem Zeitpunkt stehen angezeigt und nicht die, die Du durch den Klick erst anwählst. Problem mit Listbox - thomas.sandrisser - 15.01.2008 20:00 Dein entweder/oder funktioniert nicht. Wenn du das Verhalten der Listbox genau beobachtest, dann wirst du feststellen, dass der Wert in der Listbox erst mit Mouse Button Up uebernommen wird. Wenn du in deiner Evenstruktur das Verhalten von Mouse Down auf Mouse Up aenderst, wird immer der richtige Wert uebernommen werden. Wenn du unbedingt mit Mouse Down arbeiten willst/musst, dann musst du dir mittels Property Node behelfen... (oder wie es YP schon gepostet hat, per Value Change Event) Anbei ein Bsp in LV 85 Problem mit Listbox - RomanT - 15.01.2008 22:02 Der Wert ändert als erst nach "Maustaste gedrückt" (nicht "Maustaste gedrückt?" mit dem roten Pfeil, falls es das auch gibt), selektiert/deselektiert wird aber schon zuvor? Finde ich seltsam, aber ich denke mit "Maustaste losgelassen" sollte das wohl auch gehen. Ich werde es morgen ausprobieren. Grüsse Thaller Problem mit Listbox - thomas.sandrisser - 15.01.2008 22:14 Was ist daran unverstaendlich :-) Du drueckst die Taste auf der Maus, auf Grund des Tastendrucks wird der Wert geaendert. Das Event wird bei Maus druecken abgefeuert, zu diesem Zeitpunkt hat noch keine Wertaenderung statt gefunden. Durch das Property Node erzwingst du implizit ein Update wodurch die richtige Selection eingelesen wird... Problem mit Listbox - RomanT - 16.01.2008 08:47 Ok, hast recht, und es funktioniert auch Sehr schön, vielen Dank Grüsse Thaller |