Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
06.03.2012, 09:07 (Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2012 09:09 von dimitri84.)
ich habe ein Main VI, das einen Dialog aufruft. Der Dialog ist als "Dialog" definiert und bleibt daher brav im Vordergrund außer etwas modales kommt daher. Bis dahin prima. Wenn der Benutzer jetzt neben den Dialog patscht, gar auf einen Button, merkt sich die Eventstruktur das mit ihrem Elefantengedächnis, und führt das Event nach der Dialogkaskade durch. Das gefällt mir nicht (würde man jetzt - glaube ich - auf Facebook sagen). Ich dachte durch setzen des Häkchens unten (... erst verarbeiten, EreignisCase abgeschlossen) wär das so - war aber nicht.
Mir ist klar geworden, dass es eine Architekturschwäche ist, dass ich zeitaufwendigen Code in der Eventstruktur abarbeite. Ansonsten hätte ich nämlich die Eigenschaft "IstImVordergrund" abfragen können. Aber ich wollte es ganz bewusst so haben, dass die Eventstruktur blockiert ist, wenn die Dialoge laufen.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
07.03.2012, 08:21 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2012 08:27 von Lucki.)
(06.03.2012 09:07 )dimitri84 schrieb: Übersehe ich was?
Nein, Du bist lediglich das unschuldige Opfer einer falschen Beschreibung (vielleicht ist es auch nur ein falsche Übersetzung) . Das von Dir gewünschte Verhalten erreicht man gerade dadurch, das man das Häckchen nicht setzt. Bei dem Häkchen müßte es statt
"Benutzereingriffe auf dem Frontpanel erst verarbeiten, wenn der Ereignis Case abgeschlossen ist"
richtig heißen:
"Benutzereingriffe auf dem Fronpanel sich merken und verarbeiten, wenn der Ereignis Case abgeschlossen ist"
D.h ohne dieses Häkchen werden FP-Benutzereingriffe, während der Ereignsicase verarbeitet wird, nicht registriert - und das ist genau das was Du haben willst. Das Wörtchen "erst" in der von NI gewählten Fomulierung suggeriert aber, daß bei nicht gesetztem Häckchen Benutzereingriffe ebenfalls verarbeitet werden, und zwar sofort. Und das ist falsch.
(07.03.2012 08:21 )Lucki schrieb: D.h ohne dieses Häkchen werden FP-Benutzereingriffe, während der Ereignsicase verarbeitet wird, nicht registriert - und das ist genau das was Du haben willst.
Leider nicht. Ob mit oder ohne Häkchen, die "fälschlich" ausgelösten Events werden immer ausgelöst. Der Unterschied ist lediglich, dass ohne Häkchen das Bedienelement seine Werteänderung direkt erfährt und nicht erst nach Abarbeitung des laufenden Events. Ist also nur Kosmetik.
Dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Dein Bsp-Dialog ist doch "nur" als "floating" definiert. Damit bleiben alle anderen VIs und FP-Events in diesen weiterhin aktiv, auch wenn sie nicht direkt im Vordergrund sind. Du kannst das VI im Hintergrund ja auch "aktivieren", indem du auf die Titelleiste klickst. Es ist also völlig normal, dass sich ein solches VI auch die Events erhält und ausführt, die gerade in seinem FP ausgeführt werden.
Wieso definierst du den Dialog den nicht als "modal", so wie du es schon selber angedeutet hast?
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(07.03.2012 09:14 )jg schrieb: Dein Bsp-Dialog ist doch "nur" als "floating" definiert. Damit bleiben alle anderen VIs und FP-Events in diesen weiterhin aktiv, auch wenn sie nicht direkt im Vordergrund sind.
Wieso definierst du den Dialog den nicht als "modal", so wie du es schon selber angedeutet hast?
Weil "modal" der OnScreen-Tastatur vorbehalten ist, die ihrerseits immer über dem Dialog sein muss. Touchscreen...
Mit zwei modalen Fenstern hab ich's nicht ausprobiert - schien mir nicht besonders sauber. Aber einen Test ist es wert.
(07.03.2012 09:14 )jg schrieb: Du kannst das VI im Hintergrund ja auch "aktivieren", indem du auf die Titelleiste klickst.
Das VI im Hintergrund soll ja schlummern. Der Benutzer soll nur dort interagieren können, wo es grad aktuell ist.
Edit: Gegen zwei modale Fenster scheint nix zu sprechen. Das zuletzt aufgerufene gewinnt. Jens hat mal wieder ein klassisches Brett vorm Kopf entfernt.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
(07.03.2012 11:54 )Lucki schrieb: Bei mir hatte das mal funktioniert, aber ich weiß im Moment nicht, was damals anders war als jetzt.
Ich weiß, das hatte ich auch im Hinterkopf, dass Du das immer mit dem enthaken gelöst hast - bin auch immer davon ausgegangen, dass das so funktioniert. Bis ich's mal ausprobiert habe.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)