Dialog in einer Visualisierung aufrufen
Sie können für eine Visualisierung eine Benutzereingabe konfigurieren, die bewirkt, dass sich eine Visualisierung als Dialog öffnet. Beispielsweise klickt ein Benutzer auf eine Schaltfläche, woraufhin sich ein Dialog öffnet und zur Eingabe von Werten auffordert. Ein Dialog wird verwendet, um Eingaben vom Benutzer einzuholen und kann, wenn er modal ist, dazu führen, dass Eingaben außerhalb des Dialogs geblockt werden.
Nur Visualisierungen, die den Visualisierungstyp Dialog haben, können als Dialog geöffnet werden. Sie konfigurieren den Visualisierungstyp im Dialog Eigenschaften eines Visualisierungsobjekts.
Prinzipielle Vorgehensweise:
Voraussetzung: Im Projekt sind eine Hauptvisualisierung und ein Dialog vorhanden.
Konfigurieren Sie eine Benutzereingabe für die Hauptvisualisierung mit der Aktion OpenDialog für den Dialog.
⇒ Das Öffnen des Dialogs ist konfiguriert.
Konfigurieren Sie eine Benutzereingabe für ein Element des Dialogs mit der Aktion CloseDialog.
Tipp: Bei nicht modalen Dialogen können Sie die Benutzereingabe für das Schließen auch außerhalb des Dialogs konfigurieren.
⇒ Das Schließen des Dialogs ist konfiguriert.
Info
Anstelle von selbst erstellten Dialogen können Sie auch Dialoge aus Bibliotheken verwenden. Wenn beispielsweise die Bibliothek VisuDialogs im Projekt eingebunden ist, können Sie die darin enthaltenen Dialoge VisuDialogs.Login oder VisuDialogs.FileOpenSave verwenden.
Siehe auch
Visualisierungsobjekt als Dialog konfigurieren
Wählen Sie in der Ansicht Geräte das Objekt aus, öffnen Sie das Kontextmenü und wählen Sie den Befehl Eigenschaften aus.
Wählen Sie die Registerkarte Visualisierung aus.
Aktivieren Sie die Option Dialog und beenden Sie den Dialog mit OK.
⇒ Die Visualisierung hat den Visualisierungstypen Dialog und kann als solcher aufgerufen werden.
Bei Dialogaufrufen klickt üblicherweise ein Benutzer auf eine Schaltfläche, woraufhin sich ein Dialog öffnet und zur Eingabe auffordert.
Im folgenden Beispiel ermöglicht ein Dialog, der einen Kalender darstellt, die Eingabe eines Datums.
Voraussetzung: Das Projekt enthält die Visualisierungen visMain und dlgCalender.
Stellen Sie den Visualisierungstypen von dlgCalender auf Dialog.
Ziehen Sie ein Rechteck in die Visualisierung visMain.
Konfigurieren Sie die Eigenschaft Texte ‣ Text mit dem Text Due Date: %t[yyyy-MM-dd].
Konfigurieren Sie die Eigenschaft Textvariablen ‣ Textvariable mit PLC_PRG.dateDue.
Ziehen Sie eine Schaltfläche in die Visualisierung.
Konfigurieren Sie die Eigenschaft Texte ‣ Text mit dem Text Open dialog.
Konfigurieren Sie die Eigenschaft Eingabekonfiguration ‣ OnMouseClick für die Aktion Dialog öffnen mit dlgCalender.
⇒ Die Benutzereingabe für das Öffnen des Dialogs ist konfiguriert.
Doppelklicken Sie auf den Dialog dlgCalender.
Ziehen Sie ein Element Datumsauswahl in den Visualisierungseditor.
Konfigurieren Sie die Eigenschaft Texte ‣ Text mit Due Date: %t[yyyy-MM-dd].
Konfigurieren Sie die Eigenschaft Variable mit PLC_PRG.dateCalender.
⇒ Das Element ist konfiguriert.
Ziehen Sie eine Schaltfläche in den Visualisierungseditor.
Konfigurieren Sie die Eigenschaft Texte ‣ Text mit OK.
Konfigurieren Sie die Eigenschaft Eingabekonfiguration ‣ OnMouseClick für die Aktion Dialog schließen mit dlgCalender, Result: OK.
Konfigurieren Sie eine weitere Eigenschaft Eingabekonfiguration ‣ OnMouseClick für die Aktion ST-Code ausführen mit PLC_PRG.dateDue := PLC_PRG.dateCalendar;.
⇒ Die Benutzereingabe für das Schließen des Dialogs ist konfiguriert.
Ziehen Sie eine weitere Schaltfläche in den Visualisierungseditor.
Konfigurieren Sie die Eigenschaft Texte ‣ Text mit Cancel.
Konfigurieren Sie die Eigenschaft Eingabekonfiguration ‣ OnMouseClick für die Aktion Dialog schließen mit dlgCalender, Result: Cancel.
⇒ Die Benutzereingabe für das Abbrechen des Dialogs ist konfiguriert.
Übersetzen, laden und starten Sie die Applikation.
⇒ .. figure:: PNG72_visu_img_dlg_calendar.png
alt
Variablendeklaration:
PROGRAM PLC_PRG
VAR
dateDue : DATE := DATE#2000-01-01;
dateCalendar : DATE;
END_VAR
Info
Im CODESYS Store finden Sie außerdem das Beispiel Visualization Dialog Box, das eine Applikation mit Dialogaufruf enthält.
Üblicherweise erscheint ein Dialog nur auf der Darstellungsvariante, auf der ein Benutzer das auslösende Ereignis ausführt.
Sie können aber das Öffnen des Dialog so konfigurieren, dass der Dialog gleichzeitig auf allen aktiven Darstellungsvarianten erscheint, die unter dem Visualisierungsmanager konfiguriert sind. So kann zum Beispiel eine Eingabeaufforderung gleichzeitig auf allen Darstellungsvarianten erscheinen, obwohl ein Benutzer nur auf der CODESYS TargetVisu etwas eingab.
Wenn ein Benutzer den Dialog auf einer Darstellungsvariante CODESYS TargetVisu schließt, wird er auf allen Darstellungsvarianten geschlossen.
Mit den Funktionen OpenDialog3 und CloseDialog2 der Bibliothek VisuElems können Sie einen globalen Dialog öffnen und schließen.
Info
Im CODESYS Store finden Sie das Beispielprojekt Visualization Dialog Box. Die Visualisierung ermöglicht dem Benutzer einen Dialog zu öffnen und Daten einzugeben. Nach dem Schließen des Dialogs sind die Daten gespeichert und werden im Hauptfenster angezeigt.
Applikationszugriff auf Dialog implementieren
Sie können einen Dialog mittels Applikationscode öffnen oder einen Dialog applikativ öffnen. Verwenden Sie dabei für einen einfachen Zugriff die Schnittstellen der Bibliothek VisuUtils. Wenn Sie VisuUtils im Bibliotheksverwalter öffnen, können Sie die Bibliothek nach ihrem Inhalt durchsuchen und auf die Bibliotheksdokumentation zugreifen.
Info
Bis CODESYS V3.5 SP10 konnten Sie einen programmatischen Zugriff auf Dialoge nur mit Hilfe der Funktionalität des internen Dialogmanagers implementieren. Ab V3.5 SP11 steht Ihnen dafür die Bibliothek VisuUtils zur Verfügung.
Im CODESYS Store finden Sie das Beispielprojekt Visu Dialog ST, in dem mit Hilfe der Schnittstellen der Bibliothek VisuUtils auf Dialoge programmatisch zugegriffen wird. Sie können dem Projekt beispielsweise entnehmen, wie das Öffnen eines Dialogs oder die Parameterübergabe an einen Dialog implementiert ist.
Siehe auch