<< Inhaltsverzeichnis Suchen >>

ADDCONTROL

Funktion

Syntax:

ADDCONTROL(<TRENNZEICHEN>,<ATTRIBUTE>, <VARIABLE>,
                              [<MACRO-VORHER>],[<MACRO-NACHHER>])

<TRENNZEICHEN>        = <STRING-AUSDRUCK>
<ATTRIBUTE>                  = <STRING-AUSDRUCK>
<VARIABLE>                   = <STRING-VARIABLE> oder
                                               <NUM-VARIABLE>
<MACRO-VORHER>      = <MACRO-NAME>
<MACRO-NACHHER>   = <MACRO-NAME>

 

Bedeutung:

Mit der Funktion ADDCONTROL können sowohl auf bestehenden Masken und Maskenwindows als auch auf Windows, die mit der Anweisung WINDOW erzeugt wurden, zusätzliche Eingabefelder (Buttons, etc.) dynamisch erzeugt und gelöscht (DELFIELD) werden.

Im Gegensatz zur Funktion ADDFIELD können mit ADDCONTROL alle Maskenfelderarten erzeugt werden.

Die Funktion ADDCONTROL unterscheidet automatisch zwischen den zwei in Frage kommenden Möglichkeiten:

 

1. Eine Maske oder ein Maskenwindow ist aktiv:

 

 

In diesem Fall werden alle durch ADDCONTROL definierten Felder jeweils am Ende der Verarbeitungsreihenfolge angefügt.

 

 

Jedes definierte Feld steht sofort zur Verarbeitung zur Verfügung. Unter Windows ist die Anweisung DISPLAY #... oder DISPLAY ALL notwendig, um das neue Feld sichtbar zu machen, unter Java wird das Feld sofort sichtbar.

 

 

Die Anzahl der Felder, die unter Windows/DOS/UNIX auf einer Maske mit ADDCONTROL eingefügt werden können, errechnet sich folgendermaßen:

 

 

Die Maximalanzahl von Eingabefeldern, für die vom EBUS-Generator bei der Generierung Speicherplatz angelegt wird, ist definiert durch die Maske des Programmes, die die meisten Eingabefelder besitzt. Folglich können auf jeder anderen Maske soviele Felder mit ADDCONTROL hinzugefügt werden, bis diese Maximalanzahl erreicht ist. Um auch auf der Maske mit den meisten Eingabefeldern zusätzliche Felder definieren zu können, existiert die Compileranweisung #ADDFIELDS = <ZAHL>. Mit dieser Anweisung wird die Maximalanzahl um <ZAHL> Felder erhöht. Somit können dann auf der Maske mit den meisten Eingabefeldern noch <ZAHL> zusätzliche Felder definiert werden. Die Compileranweisung #ADDFIELDS ist unter Java nicht notwendig, da dort stets beliebig viele Maskenfelder mit ADDCONTROL erzeugt werden können.

 

2. Ein Window ist aktiv, das mit der Anweisung WINDOW erzeugt wurde:

 

 

Ein derartiges Window besitzt keine Eingabefelder. Mit ADDCONTROL ist es möglich, beliebige Felder für eine Feldverarbeitung zu definieren. Die Anzahl der zusätzlich definierbaren Felder wird unter Windows ausschließlich durch die Compileranweisung #ADDFIELDS = <ZAHL> festgelegt. Da das Window keine Feldverarbeitung besitzt, speichert ADDCONTROL die Felder nur in einem Zwischenpuffer. Die Verarbeitung dieser Felder wird durch die Funktion STARTFIELD gestartet.

 

Die Funktion ADDCONTROL liefert als Ergebnis 0, wenn kein Fehler auftrat, sonst eine Fehlernummer. Die entsprechenden Fehlernummern sind im Anhang aufgeführt.

Wird ADDCONTROL unter Java in einer Funktion ausgeführt, so müssen dimensionierte <VARIABLE> verwendet werden, andernfalls werden lokale Variablen aus der Funktion verwendet, die nach der Beendigung der Funktion nicht mehr existieren.

 

 

Das erste Zeichen von <TRENNZEICHEN> legt das Trennzeichen fest, durch das die Einträge in <ATTRIBUTE> getrennt werden. Der Strichpunkt ';' ist als Trennzeichen nicht zulässig, da der Strichpunkt in den Button-Attributen (Attribut-Nr. 16) als Trennzeichen verwendet wird.

<ATTRIBUTE> enthält durch <TRENNZEICHEN> getrennt die Attribute des Maskenfeldes. Die Attribute müssen in der nachfolgend aufgeführten Reihenfolge angegeben werden. Leere Einträge sind möglich.

 

 

Attribut-Nr.

Attribut

Bedeutung

 

 

1

Feldtyp

F = EBUS-Maskenfeld
A = Passwortfeld
E = Editfeld
B = Button
P = Pushbutton
C = Checkbox
R = Radiobutton
O = Scrollbar
M = Combobox
L = Listbox
T = Statischer Text
S = Systemdatum

 

 

2

Feldhöhe

Legt die Höhe des Feldes als Vielfaches der Zeilenhöhe fest. Dieses Attribut hat nur eine Bedeutung bei Typ = E, B, P, C, R, O, L ,T.

Ist Typ = B, P, C oder R und wird keine Feldhöhe angegeben, so gilt die durch die
Variablen EBUS_PUSHBUTTON, EBUS_
CHECKBOX$ bzw. EBUS_RADIOBUTTON$ festgelegt Höhe.

Ist Feldhöhe <= 0, so ist die Feldhöhe = 1.5 bei Typ = B und P und sonst = 1.

 

 

3

Anzahl
Eingabezeichen

Dieses Attribut hat nur eine Bedeutung bei Typ = F, A, E, M.

Es wird die Anzahl der zulässigen Eingabezeichen festgelegt. Ist Anzahl Eingabezeichen <= 0 oder leer, so wird die Anzahl der Eingabezeichen durch den Formatstring (Attribut-Nr. 6) festgelegt.

 

 

4

Zeile

Zeilenposition des Feldes

 

 

5

Spalte

Spaltenposition des Feldes

 

 

6

Formatstring

z.B. &&&&& oder $$,$$#.##

Legt die Formatierung und den Typ des Maskenfeldes (numerisch, alphanumerisch, Datum) fest. Folgende Formatzeichen sind möglich:

 

 

 

 

&

alphanumerisches Zeichen

 

 

 

 

#

numerisches Zeichen ohne Nullunterdrückung

 

 

 

 

$

numerisches Zeichen mit Nullunterdrückung

 

 

 

 

^

Datumszeichen

 

 

 

 

Bei numerischen Feldern mit Nachkommastellen muß der Punkt '.' als Dezimalpunkt verwendet werden.

 

 

7

Vorzeichen

Ist nur von Bedeutung bei numerischen Feldern. Folgende Werte sind möglich: J, Y, N. Der leere Eintrag ist gleichbedeutend mit N.

 

 

8

Blinken

Folgende Werte sind möglich: J, Y, N. Der leere Eintrag ist gleichbedeutend mit N.

Dieses Attribut hat keine Wirkung unter Java.

 

 

9

Änderbar

Folgende Werte sind möglich: J, Y, N. Der leere Eintrag ist gleichbedeutend mit J.

 

 

10

Groß-/Kleinbuch-
staben/Alle

Ist nur von Bedeutung bei alphanumerischen Feldern. Folgende Werte sind möglich: G, K, A. Der leere Eintrag ist gleichbedeutend mit A.

 

 

11

Sonderzeichen
zulässig

Ist nur von Bedeutung bei alphanumerischen Feldern. Folgende Werte sind möglich: J, Y, N. Der leere Eintrag ist gleichbedeutend mit J.

 

 

12

Automatisches
Feldende

Folgende Werte sind möglich: J, Y, N. Der leere Eintrag ist gleichbedeutend mit N.

 

 

13

Schlüssel-Nr
für Blättern

Legt die Schlüsselnummer für das Blättern bei Indexdateifeldern fest.

 

 

14

Zulässige
Eingabezeichen

Ist nur von Bedeutung bei alphanumerischen Feldern. Es können maximal 20 zulässige Eingabezeichen angegeben werden.

Bei Radiobuttons (Typ = R) legt das erste Zeichen von zulässige Eingabezeichen das Zeichen fest, das die Radiobuttonvariable annimmt, wenn der Radiobutton aktiviert wird.

 

 

15

Hilfetext

Legt den Text fest, der angezeigt wird, wenn sich der Mauszeiger über dem Feld befindet. Dieses Attribut hat nur eine Bedeutung unter Java.

 

 

16

Button-Attribute

Bei Typ = B, P, C, R, E, L, M, T, O können zusätzliche Attribute angegeben werden. Die einzelnen Attribute müssen durch den Strichpunkt ';' getrennt werden.

Bei Typ = B (Button) und P (DefPushbutton) ist Button-Attribute aufgebaut wie EBUS_PUSHBUTTON$.

Bei Typ = C (Checkbox) ist Button-Attribute aufgebaut wie EBUS_CHECKBOX$.

Bei Typ = R (Radiobutton) ist Button-Attribute aufgebaut wie EBUS_RADIOBUTTON$.

Attribut-Aufbau bei Typ = E:

 

 

 

 

Nr.

Inhalt

 

 

 

 

1

Schriftname

 

 

 

 

2

Schrifthöhe in Punkt

 

 

 

 

3

Fettschrift: J/Y/N

 

 

 

 

4

Kursivschrift: J/Y/N

 

 

 

 

5

Textausrichtung:
L = links
Z = zentriert
R = rechts

 

 

 

 

6

Mehrzeiliges Editfeld: J/Y/N

 

 

 

 

7

Horizontaler Scrollbalken: J/Y/N

 

 

 

 

8

Autoscroll horizontal: J/Y/N

 

 

 

 

9

Vertikaler Scrollbalken: J/Y/N

 

 

 

 

10

Autoscroll vertikal: J/Y/N

 

 

 

 

11

Passwortfeld: J/Y/N

 

 

 

 

12

Return erforderlich: J/Y/N

 

 

 

 

13

Umrahmung: J/Y/N

 

 

 

 

14

Systemfont: J/Y/N

 

 

 

 

15

nicht änderbar: J/Y/N

 

 

 

 

16

HTML-Browser

 

 

 

 

17

RTF-Viewer

 

 

 

 

 

Attribut-Aufbau bei Typ = L und M:

 

 

 

 

Nr.

Inhalt

 

 

 

 

1

Schriftname

 

 

 

 

2

Schrifthöhe in Punkt

 

 

 

 

3

Fettschrift: J/Y/N

 

 

 

 

4

Kursivschrift: J/Y/N

 

 

 

 

5

Höhe der List-/Combobox in Zeilen

 

 

 

 

6

Sortierung: J/Y/N

 

 

 

 

7

Horizontaler Scrollbalken: J/Y/N

 

 

 

 

8

Vertikaler Scrollbalken: J/Y/N

 

 

 

 

9

Combobox mit Editfeld: J/Y/N

 

 

 

 

Attribut-Aufbau bei Typ = T:

 

 

 

 

Nr.

Inhalt

 

 

 

 

1

Schriftname

 

 

 

 

2

Schrifthöhe in Punkt

 

 

 

 

3

Fettschrift: J/Y/N

 

 

 

 

4

Kursivschrift: J/Y/N

 

 

 

 

5

Breite in Spalten

 

 

 

 

6

Textausrichtung:
L = links
Z = zentriert
R = rechts

 

 

 

 

7

gesperrt: J/Y/N

 

 

 

 

8

kein Zeilenumbruch: J/Y/N

 

 

 

 

9

kein Hervorhebungszeichen: J/Y/N

 

 

 

 

10

Umrahmung: J/Y/N

 

 

 

 

11

doppelter Rand: J/Y/N

 

 

 

 

12

leicht versunken: J/Y/N

 

 

 

 

13

stark versunken: J/Y/N

 

 

 

 

Attribut-Aufbau bei Typ = O:

 

 

 

 

Nr.

Inhalt

 

 

 

 

1

Horizontal/Vertikal: H/V

 

 

 

 

2

Breite in Spalten

 

 

 

 

3

Wertebereich von

 

 

 

 

4

Wertebereich bis

 

 

 

 

5

Seitengröße

 

 

17

Inhalt

Dieses Attribut hat nur eine Bedeutung bei Typ = L, M, C, R.

Bei Typ = C und R wird die Bezeichnung der Checkbox bzw. des Radiobuttons festgelegt.

Bei Typ = L und M werden die Einträge in der List-/Combobox festgelegt. Die einzelnen Einträge sind durch den Strichpunkt ';' zu trennen.

 

 

 

 

Beispiel:

TRENNZEICHEN$ = CHR$(1)
/* Alphanumerisches Eingabefeld auf Position (10,5)
ATTRIBUTE$ =   "F" + TRENNZEICHEN$ +
                              "1" + TRENNZEICHEN$ +
                              "20" + TRENNZEICHEN$ +
                              "10" + TRENNZEICHEN$ +
                              "5" + TRENNZEICHEN$ +
                              "&&&&&&&&&&" + TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$

H% = ADDCONTROL(TRENNZEICHEN$,ATTRIBUTE$,VAR$,
                                            MACRO.VOR,MACRO.NACH)
IF H% <> 0
THEN ERRORMES = "Fehler" + STR$(H%)
ENDIF

/* Combobox auf Position (3,4) mit Editfeld und
/* den Wochentagen als Einträge
FUELL$ = "Montag;Dienstag;Mittwoch;Donnerstag;Freitag;"+
                   "Samstag;Sonntag"
BUTTON_ATTRIBUTE$ = "Arial;14;N;N;7;N;N;N;J"
ATTRIBUTE$ =   "M" + TRENNZEICHEN$ +
                              "1" + TRENNZEICHEN$ +
                              "15" + TRENNZEICHEN$ +
                              "3" + TRENNZEICHEN$ +
                              "4" + TRENNZEICHEN$ +
                              "&&&&&&&&&&" + TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              TRENNZEICHEN$ +
                              BUTTON_ATTRIBUTE$ + TRENNZEICHEN$ +
                              FUELL$

H% = ADDCONTROL(TRENNZEICHEN$,ATTRIBUTE$,VAR$,
                                            MACRO.VOR,MACRO.NACH)
IF H% <> 0
THEN ERRORMES = "Fehler" + STR$(H%)
ENDIF

 

siehe auch:

ADDFIELD, DELFIELD, STARTFIELD, #ADDFIELDS