Auswahlliste
Auswahllisten sind Listen, in denen die ausgewählten Optionen farbig unterlegt werden. Im Unterschied zu Radio- oder Checkboxen muss nicht immer die ganze Liste angezeigt werden, da Sie innerhalb eines festen Rahmens durch Mausklick vor- und zurückschieben ("Scrollen") können. Auswahllisten sind dazu da, um eine Auswahl aus mehreren vorgegebenen Alternativen zu erlauben.
Um den DoubleClick mit der Tastatur aufzulösen, wählen Sie in einer Auswahlliste mit den Cursortasten ein Element und bestätigen die Wahl per Enter-Taste.
Abbildung: Auswahlliste
So erstellen Sie eine Auswahlliste
-
Klicken Sie auf das Werkzeug für die Auswahlliste .
-
Klicken Sie in die Panelarbeitsfläche. Bestimmen Sie die Größe.
-
Öffnen Sie das Eigenschaftenfenster.
-
Vergeben Sie den Objektnamen neben (Name).
-
Tragen Sie die Optionen über den Listen-Editor ein, den Sie durch Klick auf die Schaltfläche ... (im Eigenschaftenfenster) öffnen:
Abbildung: Listen Editor
Durch Anklicken der Schaltfläche Danach einfügen wird der neue Eintrag hinter die im Einträge-Feld markierte Option gesetzt. Durch Anklicken der Schaltfläche Davor einfügen wird der neue Eintrag vor die im Einträge-Feld markierte Option gesetzt. Durch Anklicken der Schaltfläche Umbenennen kann die Option umbenannt werden. Durch Anklicken der Schaltfläche Entfernen wird die markierte Option gelöscht.
Haben Sie die Auswahlliste anfänglich für die Optioneneinträge zu breit oder zu schmal aufgezogen, so können Sie die Breite der Liste auch nachträglich anpassen. Markieren Sie die Liste und ziehen Sie mit der Maus an der Seitenmarkierung.
Mit einem Doppelklick auf die Kaskade im Panel während des Engineerings, kann der Kaskaden-Editor geöffnet werden.
-
Ändern Sie die Schriftformatierung der Einträge im Eigenschaftenfenster. Die Tastenkürzel für die Tastaturselektion kann im Eigenschaftenfenster gesetzt werden. Außerdem können hier noch alterierende Zeilenfarben mit dem gleichnamigen Attribut aktiviert werden. In CTRL können Elemente über "appendItem" hinzugefügt werden und ein Element über "deletePos" gelöscht werden. Alle Elemente können über "deleteAllItems" gelöscht werden. Siehe Control/Control Grafik/Auswahlliste-Funktionen.)
-
Über den Eintrag "selectionMode" im Property Fenster können Sie den Auswahlmodus für die Liste festlegen.
Abbildung: Property Editor - selectionMode
Folgende Auswahlmöglichkeiten stehen zur Verfügung:
-
SingleSelection
Nur ein Element kann ausgewählt werden. Wird ein Element selektiert, wird das zuvor selektierte Element deselektiert.
-
MultiSelection
Mehrere Elemente können ausgewählt werden, ohne dass andere Elemente deselektiert werden. Außerdem können mehrere Elemente selektiert werden, wenn man mit gedrückter linker Maustaste die Maus über die Elemente zieht.
-
ExtendedSelection
Wird ein Element normal selektiert, wird die Auswahl des vorherigen Elements aufgehoben. Wird während dem Selektieren jedoch Ctrl gedrückt, bleibt auch die vorherige Auswahl bestehen. Hält man beim Selektieren Shift gedrückt, werden alle Elemente zwischen dem zuvor ausgewählten Element und dem jetzt ausgewählten Element selektiert oder deselektiert, abhängig vom Status des jeweiligen Elements. Mehrere Elemente können selektiert werden, wenn die Maus mit gedrückter linker Maustaste über die Elemente gezogen wird.
-
ContiguousSelection
Beim normalen Selektieren kann nur ein Element ausgewählt werden. Hält man beim Selektieren Shift oder Ctrl gedrückt, werden alle Elemente zwischen dem zuvor gewählten und dem jetzt selektierten Element ausgewählt. Außerdem kann der gleiche Effekt auch durch Ziehen mit der Maus bewirkt werden.
-
NoSelection
Kein Selektieren ist möglich.
Beispiel
Ein Script für eine Auswahlliste, die Störungen zweier Ventile ausgibt, würde beispielsweise folgendermaßen lauten. Die jeweils jüngste und damit der Liste als letzte hinzugefügte Meldung soll ganz oben in der Liste angezeigt werden. Die Funktion dpConnect() ruft bei jeder Änderung der Onlinewerte der Datenpunktvariablen "VD01.EinAus" oder "VD02.EinAus" die Funktion schalt() auf. Diese reiht die Listeneinträge entsprechend den übermittelten Onlinewerten und der Meldungszeit. Vorausgesetzt wird, dass Störungen jeweils der Onlinewert Fünf zugeordnet ist.
main() { string wert = ".EinAus:_online.._value"; dpConnect("schalt", "VD01"+wert, "VD02"+wert); } schalt(string dp, int w1, int w2) { time t = getCurrentTime(); int std = hour(t); int min = minute(t); int sek = second(t); string s; if((w1 == 5) && (w2 != 5)) { sprintf(s, "Ventil D01 blockiert!Meldungszeit:%d, %d, %d", std, min, sek); /* Beachten Sie, dass die Funktion sprintf im Code auf einer Zeile geschrieben werden soll*/
setValue("","appendItem", s); } else if((w1 != 5) && (w2 == 5)) { sprintf(s, "Ventil D02 blockiert!Meldungszeit:%d, %d, %d", std, min, sek); setValue("", "appendItem", s); } else if((w1 == 5) && (w2 == 5)) { sprintf(s, "Ventil D01&D02 blockiert!Meldungszeit:%d, %d, %d", std, min, sek); setValue("", "appendItem", s); } else setValue("","deleteAllItems"); setValue("","topPos", 0); } |