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 

Bedienelemente bündeln zum Auslösen eines Events



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!

31.08.2019, 10:01
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Bedienelemente bündeln zum Auslösen eines Events
(29.08.2019 20:32 )GerdW schrieb:  Lege doch das benutzerdefinierte Event als ValueChange an, wenn du darauf reagieren willst...
@GerdW:

Das verstehe ich nicht:
Was meinst du mit "als ValueChange anlegen"? Anlegen heißt ja Erstellen: Kann man denn einen Event als Quelle für ein benutzerdefiniertes Event verwenden? Ist mit nicht bekannt. Würde ich als sinnlos erachten: Wenn ein Event vorliegt, warum dann nochmals weiterleiten? Da kann man doch gleich dort reagieren, wo das Event auftritt.

Bisher arbeite ich nur mit LV bis Version 2017. Mag sein, dass es in 2019 was neueres gibt.

@Marcusuis:

Du möchtest ja (unbedingt) keine Cluster verwenden. Nun gut.

Einen Sachverhalt (spricht: ein Problem) hast du aber grundsätzlich immer: Für jedes einzelne Bedienelement brauchst du einen spezifischen Algorithmus, also entweder einen eigenen Sourcecode oder einen parametrierten Sourcecode, der dann für mehrere Bedienelemente brauchbar ist. Aufgabe: Wo steht der Sourcecode, wenn es sich um 50 Bedienelemente handelt?

Vorteilhaft ist es immer, so wenig wie möglich Sourcecode innerhalb eines VIs zu haben (=> SubVIs). Grundsätzlich geht das auch mit deinen Wünschen.

Sammle alle ValueChange-Events deiner 50 Bedienelemente in einem einzigen Eventcase. Dann hat du zwar sehr, sehr wenig Sourcecode - aber einen "Nachteil": die Liste der Eventcase-Auslöser wird sehr, sehr lang. Dem Compiler bzw. dem Runtime-System ist die Länge egal, nicht aber dem Programmierer. Beachte, dass dieses alles mit Clustern wesentlich einfacher wird.

In dem einen Eventcase bekommt du jetzt zwei relevante Daten: "Referenz" und "Neuer Wert". Beide gibst du jetzt in ein SubVI. Vorteil: Das VI, speziell diese Eventcase, bleibt klein und übersichtlich (Hinweis: Funktioniert auch mit Clustern).

Über die Referenz (=> Name und Typ des Bedienelementes) kannst du feststellen, welches Bedienelement verarbeitet werden soll und welchen Datentyp es hat. Beachte, dass der Typ von "Neuer Wert" Variant ist, wenn die Ereignisquellen unterschiedliche Typen haben.

In dem SubVI kann du nun per "Name von Eventquelle" mittels einer Case-Struktur Eventquellen-spezifische Sachen machen.

Ausblick:
Für Cluster gilt: "Neuen Wert" mit "Altem Wert" auf Gleichheit vergleichen. Erste False-Position im Vergleichsarray ergibt den neuen Wert und indirekt den Bedienelementnamen. Mit Bedienelementname und Wert so verfahren, wie bereits oben dargelegt.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Bedienelemente bündeln zum Auslösen eines Events - IchSelbst - 31.08.2019 10:01

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Frage zur Architektur: Statemachine und Wait for Events tuhpon 6 2.826 18.03.2024 16:14
Letzter Beitrag: tuhpon
  Kanalendpunkte (Stream) bündeln? LV-New 4 3.212 09.04.2021 13:52
Letzter Beitrag: LV-New
  Bedienelemente platzieren Hubert R. 10 7.816 05.11.2020 10:10
Letzter Beitrag: Hubert R.
  Runtime Menü auslösen aus anderem VI GT123 4 2.786 11.09.2020 16:12
Letzter Beitrag: GT123
  variable Anzahl Bedienelemente TpunktN 4 3.055 19.08.2020 11:35
Letzter Beitrag: jg
  Benutzer Event auslösen ? Niko1912 7 4.082 22.11.2018 16:35
Letzter Beitrag: GerdW

Gehe zu: