INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Events filtern, wenn GUI im Hintergrund



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.)
Beitrag #1

dimitri84 Offline
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?


10.0 .vi  BSP_Dialog.vi (Größe: 8,15 KB / Downloads: 226)


10.0 .vi  Anschlag_oben_Dialog.vi (Größe: 524,34 KB / Downloads: 207)


Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.03.2012, 14:19
Beitrag #2

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
RE: Events filtern, wenn GUI im Hintergrund
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)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2012, 08:21 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2012 08:27 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2012, 08:43
Beitrag #4

dimitri84 Offline
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 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)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2012, 09:14
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Events filtern, wenn GUI im Hintergrund

Akzeptierte Lösung

Hmm 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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2012, 11:14 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2012 11:20 von dimitri84.)
Beitrag #6

dimitri84 Offline
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:  Hmm 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)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2012, 11:54
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2012, 12:37
Beitrag #8

dimitri84 Offline
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 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)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Frage zur Architektur: Statemachine und Wait for Events tuhpon 6 4.626 18.03.2024 16:14
Letzter Beitrag: tuhpon
  Bedienelemente bündeln zum Auslösen eines Events Marcusius 12 9.362 03.09.2019 17:24
Letzter Beitrag: Marcusius
Shocked Textdatei filtern Ebe419 2 3.052 15.02.2018 22:23
Letzter Beitrag: Ebe419
  Ansprechendes Design des Frontpanels | Muster in Hintergrund einfügen dulfried 3 4.356 23.08.2017 17:45
Letzter Beitrag: GerdW
  Mausrad bei Events/Casestrukturen Schwand 1 3.846 20.09.2016 08:30
Letzter Beitrag: Schwand
  Dynamische Events programmatisch auslösen AMueller 6 7.095 22.04.2016 07:43
Letzter Beitrag: GerdW

Gehe zu: