Sie können benutzerdefinierte Ereignisse (Benutzerereignisse) erstellen und benennen, um von Ihnen definierte Daten weiterzuleiten. Benutzerereignisse machen die asynchrone Kommunikation zwischen verschiedenen Teilen einer Anwendung möglich. Anders als durch Ereignisse der Benutzeroberfläche, die eine direkte Benutzerinteraktion mit Frontpanelobjekten erfordern, können Sie durch Benutzerereignisse eine Anwendung erstellen, die auf programmatische Änderungen von Objekten reagiert. Programmatisch erzeugte Benutzerereignisse können in derselben Ereignisstruktur verarbeitet werden wie Ereignisse der Benutzeroberfläche.

Objekte

Erstellen Sie mithilfe der folgenden Blockdiagrammobjekte ein Benutzerereignis.
  • Benutzerereignis erstellen—Benutzerereignis erstellen
  • —Für Ereignisse registrieren
  • —Ereignisstruktur
  • — Benutzerereignis erzeugen
  • — Ereignisregistrierung aufheben
  • —Benutzerereignis löschen
  • Vorgehensweise

    Erstellen Sie im folgenden Blockdiagramm ein Benutzerereignis, das von Ihnen definierte Daten programmatisch weiterleitet.


    Ein Screenshot des LabVIEW G-Codes, der die oben aufgeführten Funktionen enthält.

    Nachfolgend werden wichtige Einzelheiten zum dargestellten Blockdiagramm erläutert.

  • 1—Verbinden Sie ein Blockdiagrammobjekt mit der Funktion "Benutzerereignis erstellen", um ein Benutzerereignis zu definieren. Der Eingang der Funktion "Benutzerereignis erstellen" ist ein individuelles Element oder ein Cluster, dessen Name zum Namen des Benutzerereignisses wird und dessen Datentyp den Datentyp des Ereignisses definiert. LabVIEW verwendet außerdem Objektbeschriftungen, um die Daten benutzerdefinierter Ereignisse zu identifizieren; daher sollten Eingabedaten oder jedes Element der Eingabedaten aussagekräftig beschriftet werden. Sie müssen den Eingabedaten eine Beschriftung hinzufügen, damit das Benutzerereignis im Ereignisdatenknoten einer Ereignisstruktur erscheint. Im vorherigen Blockdiagramm ist der Name des Benutzerereignisses Mein Benutzerereignis und der Name der Ereignisdaten ist String.
  • 2—Der Ausgabewert des Anschlusses Benutzerereignis (Ausgang) der Funktion "Benutzerereignis erstellen" ist eine strikt typisierte Referenz mit dem Namen und Datentyp des Benutzerereignisses. Verwenden Sie diese Referenz als Verweis auf den Ereignisnamen und Datentyp beim Registrieren für Ereignisse und Erstellen eines Benutzerereignisses.
  • 3— Verwenden Sie die Funktion zur Ereignisregistrierung zur dynamischen Registrierung von Benutzerereignissen. Auch mit der Funktion zur Ereignisregistrierung können verschiedene Ereignistypen verbunden werden.
  • 4— Verbinden Sie den Ausgang Ereignisregistrierung (Referenz) der Funktion zur Ereignisregistrierung mit dem Anschluss für dynamische Ereignisse auf der linken Seite der Ereignisstruktur. Damit der Anschluss für dynamische Ereignisse angezeigt wird, klicken Sie mit der rechten Maustaste auf die Ereignisstruktur und wählen Sie Anschlüsse für dynamische Ereignisse anzeigen. Die Benutzerereignisdaten werden im Ereignisdatenknoten am linken Rand der Ereignisstruktur angezeigt.
  • 5—Um dem Ereignisdatenknoten weitere Daten hinzuzufügen, ziehen Sie den Knoten vertikal auf. Verwenden Sie den Ereignisdatenknoten, um auf ein Ereignisdatenelement zuzugreifen, das mit einem bestimmten Ereignis assoziiert ist.
  • 6— Um einen Case in der Struktur zur Verarbeitung des entsprechenden Ereignisses zu konfigurieren, verwenden Sie das Dialogfeld Ereignisse bearbeiten. Der Name des Benutzerereignisses wird im Bereich Ereignisquellen unter Dynamisch angezeigt.
  • 7—Mit Hilfe der Funktion "Benutzerereignis erzeugen" kann das programmierte Ereignis zusammen mit den dazugehörigen Ereignisdaten über eine entsprechend konfigurierte Ereignisstruktur an andere Teile der Anwendung übergeben werden. Für die Funktion ist eine Benutzerereignis-Referenz und ein Ereignisdatenwert erforderlich. Der Wert muss vom selben Datentyp wie das Benutzerereignis sein.
    Hinweis Wenn das Benutzerereignis nicht registriert ist, hat die Funktion "Benutzerereignis erzeugen" keine Auswirkung. Wenn das Ereignis zwar registriert ist, jedoch keine Ereignisstruktur zu seiner Verarbeitung zur Verfügung steht, wird das Ereignis in eine Queue eingereiht und verbleibt dort so lange, bis eine Ereignisstruktur ausgeführt wird, mit der es verarbeitet werden kann.
  • 8— Verwenden Sie die Funktion "Ereignisregistrierung aufheben" und die Funktion "Benutzerereignis löschen", um assoziierte Ereignisse und die Ereignisreferenz aufzuheben. Beim Beenden des jeweiligen Haupt-VIs wird die Registrierung aller Ereignisse aufgehoben und Benutzerereignisse werden automatisch gelöscht. National Instruments empfiehlt insbesondere bei Anwendungen mit langen Ausführungszeiten, die Registrierung manuell aufzuheben und die Ereignisse zu löschen, da so weniger Speicherplatz benötigt wird.
  • Empfehlungen und Warnungen

    • LabVIEW gestattet keine statische Registrierung für ein Benutzerereignis.
    • Sie können dasselbe Benutzerereignis mehrmals registrieren, indem Sie getrennte Funktionen zur Ereignisregistrierung verwenden. In einer solchen Situation erhält jede Queue, die mit einer Ereignisregistrierung (Referenz) assoziiert ist, eine Kopie des Benutzerereignisses und der verbundenen Ereignisdaten jedes Mal dann, wenn die Funktion "Benutzerereignis erzeugen" ausgeführt wird.
    • Benutzerereignisse sind Melderereignisse und können im selben Case wie an der Benutzeroberfläche auftretende oder andere Ereignisse verarbeitet werden.
    • Zum Simulieren eines Benutzereingriffs auf dem Frontpanel kann ein Benutzerereignis mit derselben Bezeichnung und demselben Datentyp wie ein vorhandenes Ereignis an der Benutzeroberfläche erstellt werden. So können Sie zum Beispiel ein Benutzerereignis mit dem Namen Wertänd1 erstellen, indem Sie einen Cluster mit zwei booleschen Feldern erstellen, und zwar WertAlt und WertNeu, die dieselben Ereignisdatenelemente wie das Ereignis Wertänderung an einem booleschen Bedienelement haben. Das simulierte Ereignis Wertänd1 kann sogar im selben Ereignis-Case verarbeitet werden wie ein echtes Ereignis des Typs "Wertänderung (boolesch)". Die Ereignisstruktur wird dann ausgeführt, wenn die Funktion zur Erzeugung eines Benutzerereignisses ein solches erzeugt hat und wenn eine tatsächliche Wertänderung am Bedienelement stattfindet.

    Beispiele

    In der Projektdatei labview\examples\Dialog and User Interface\Events\Events.lvproj finden Sie einige Beispiele zur dynamischen Registrierung von Ereignissen.

    Ein Beispiel für benutzerdefinierte Ereignisse ist das VI "User Event Generation.vi" im Verzeichnis labview\examples\Dialog and User Interface\Events