06.03.2012, 09:07
(Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2012 09:09 von dimitri84.)
Beitrag #1
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
Events filtern, wenn GUI im Hintergrund
Hallo Jungs,
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.
Übersehe ich was?
BSP_Dialog.vi (Größe: 8,15 KB / Downloads: 222)
Anschlag_oben_Dialog.vi (Größe: 524,34 KB / Downloads: 202)
Gruß dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
06.03.2012, 14:19
Beitrag #2
|
|
|
07.03.2012, 08:21
(Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2012 08:27 von Lucki.)
Beitrag #3
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Events filtern, wenn GUI im Hintergrund
(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:43
Beitrag #4
|
|
|
07.03.2012, 09:14
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Events filtern, wenn GUI im Hintergrund
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
07.03.2012, 11:14
(Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2012 11:20 von dimitri84.)
Beitrag #6
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
RE: Events filtern, wenn GUI im Hintergrund
(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
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Events filtern, wenn GUI im Hintergrund
(07.03.2012 08:43 )dimitri84 schrieb: Leider nicht. Ob mit oder ohne Häkchen, die "fälschlich" ausgelösten Events werden immer ausgelöst.
Entschudigung, habs nachgestellt, Du hast Recht. Bei mir hatte das mal funktioniert, aber ich weiß im Moment nicht, was damals anders war als jetzt.
|
|
|
07.03.2012, 12:37
Beitrag #8
|
|
|
| |