WINGEN [:name:] LISTBOX=winattr, line-var1, line-var2, arb, { int-var | line-var | string-var } [ {,PROCn | ,PROCint-var | ,INPUT='file' [(params)]} ,retcode ]
WINGEN [:name:] COMBOBOX=winattr, line-var1, line-var2, arb, { int-var | line-var | string-var }
Es wird eine Listbox oder Combobox erzeugt, die mit den Werten aus Zeilen des Arbeitsbereiches arb versorgt wird, beginnend mit der Zeilennummer in line-var1 und endend mit der Zeilennummer in line-var2. Wenn eine sortierte Darstellung gewünscht ist, so müssen die Zeilen im Arbeitsbereich bereits sortiert sein, evtl. durch Verwendung des Kommandos SORT (z.B. SORT #L2.-#L3). Wenn mehr Zeilen enthalten sind, als Platz definiert wurde, wird ein vertikaler Scrollbar erzeugt.
Die Listbox wird permanent in der definierten Höhe dargestellt. Die Combobox wird vorerst einzeilig dargestellt, nach dem Anklicken "aufgeklappt" und nach der Auswahl wieder einzeilig angezeigt.
Falls die längste Zeile die Breite der Listbox bzw. Combobox überschreitet, wird ein horizontaler Scrollbar eingeblendet
line-var1 Zeilennummer der ersten Zeile, die in der Liste angezeigt werden soll.
line-var2 Zeilennummer der letzten Zeile, die in der Liste angezeigt werden soll.
arb Arbeitsbereich, in dem die Daten für die Listbox/Combobox stehen.
Referenzvariable:
Als Referenzvariable kann eine Integer-Variable, eine Line-Variable oder eine String-Variable angegeben werden.
int-var Die Referenzvariable enthält die Position des selektierten Eintrags. Der erste Eintrag befindet sich auf Position 0.
line-var Die Referenzvariable enthält die Zeilennummer (im Wert zwischen line-var1 und line-var2) des selektierten Eintrags.
string-var Die Referenzvariable enthält den Inhalt des selektierten Eintrags.
Wenn vor Ausgabe der Dialogbox ein unzulässiger Wert in der Referenzvariablen angegeben wird (zu hoher Index in int-var, Zeilennummer nicht im Bereich von line-var1 bis line-var2, Zeichenfolge in string-var ist nicht in der Box enthalten), so wird der erste Eintrag in der Box selektiert.
Aktion für Doppelklick (nur Listbox):
PROCn Bei einem "Doppelklick" wird die EDT-Prozedur n mit dem EDT-Kommando DO aufgerufen.
PROCint-var Bei einem "Doppelklick" wird die EDT-Prozedur in int-var mit dem EDT-Kommando DO aufgerufen.
INPUT='file' Bei einem "Doppelklick" wird die INPUT-Prozedur file mit dem EDT-Kommando INPUT aufgerufen.
Die Prozedur kann durch Versorgung eines Rückgabewertes in der Integer-Variablen #I99 den weiteren Ablauf wie folgt beeinflussen:
#I99=0 Das Fenster wird nicht neu aufgebaut.
#I99=-1 Das Fenster wird mit den Daten aus den Referenzvariablen neu aufgebaut.
#I99> 0 Das Fenster wird geschlossen und nach dem Kommando WINGEN OUT fortgefahren. Die Integer-Variable #I99 behält diesen Wert.
retcode Vor dem Aufruf der Prozedur wird in die Integer-Variable #I99 der Wert retcode geladen. Damit kann für mehrere Schaltflächen dieselbe Prozedur aufgerufen werden. Anhand des Übergabecodes ist feststellbar, welche Listbox ausgewählt wurde.
Beispiele:
@wingen listbox=(160,115,80,120),#l2,#l3,6,#i53
@wingen listbox=(250,115,80,120),#l4,#l5,6,#l6
@wingen listbox=(250,115,80,120),#l4,#l5,6,#s6,proc10,1
@wingen combobox=(250,115,80,120),#l4,#l5,6,#s6