<< Inhaltsverzeichnis Suchen >>

GR_TABCONTROL

Funktion

Syntax:

GR_TABCONTROL([WAIT | NOWAIT,<EXITMACRO>,
                                      <SPLIT-HANDLE>]
                                      <TYP>,<ZEILE>,<SPALTE>,
                                      <HOEHE>,<BREITE>,
                                      <REITER-PRO-ZEILE>,
                                      #<MASKEN-NUMMER>
                                      [,#<MASKEN-NUMMER>]...)

<EXITMACRO>                 = <MACRONAME>
<SPLIT-HANDLE>             = <NUM-AUSDRUCK>
<TYP>                                   = <NUM-AUSDRUCK>
<ZEILE>                               = <NUM-AUSDRUCK>
<SPALTE>                           = <NUM-AUSDRUCK>
<HOEHE>                             = <NUM-AUSDRUCK>
<BREITE>                            = <NUM-AUSDRUCK>
<REITER-PRO-ZEILE>       = <NUM-AUSDRUCK>
<MASKEN-NUMMER>    = <ZAHL>

Bedeutung:

Mit der Funktion GR_TABCONTROL werden unter WINDOWS TabControls (Karteikarten) erzeugt und verarbeitet. Die Anzeige der TabControls erfolgt im aktuellen Window bzw. Main-Window.

 

Bei NOWAIT wird ein neuer Programmzweig gestartet (siehe Funktion WINDOWCALL) und die Funktion kehrt sofort zurück.

Bei NOWAIT wird unter Java kein Window erzeugt. Der Tabcontrol wird wie ein Maskenfeld auf der aktuellen Maske eingefügt und kann wie die anderen Felder der Maske mit den Tasten <TAB>, <Cursor unten>, etc. angesprungen werden. Beendet wird solch ein Tabcontrol nicht mit der Taste <ESC>, sondern nur durch ENDPROG, DELFIELD oder CLOSE_TABCONTROL.

Bei WAIT wird GR_TABCONTROL hierarchisch gestartet und die Funktion kehrt erst zurück wenn der TabControl beendet wurde.

Der Macro <EXITMACRO> wird ausgeführt, nachdem GR_TABCONTROL beendet wurde. Wird WAIT oder NOWAIT angegeben, so muß auch ein <EXITMACRO> angegeben werden.

Wenn der Tabcontrol im Split-Window angezeigt werden soll, muß <SPLIT-HANDLE> die Identifizierungsnummer des Split-Windows enthalten, andernfalls ist <SPLIT-HANDLE> = 0 zu setzen.

Fehlen die Parameter [WAIT | NOWAIT,<EXITMACRO>,], so ist dies gleichbedeutend mit WAIT.

NOWAIT hat nur unter WINDOWS eine Wirkung, unter MS-DOS und UNIX wirkt NOWAIT wie WAIT.

Bei NOWAIT dürfen nur Maskenwindows aufgerufen werden, die Eingabefelder enthalten. Die einzelnen Windows werden bei NOWAIT intern über die Funktion WINDOWCALL gestartet. Dadurch werden alle ON <TASTE> MACRO's beim Start des Maskenwindows und bei jedem Verlassen des Programmzweigs jeweils gesichert und beim erneuten Aktivieren des Programmzweigs wieder hergestellt.

Wird aus einem TabControl, der mit NOWAIT aufgerufen wurde, ein Macro ausgeführt (z.B. Macro-vorher, Macro-nachher, ON <TASTE> MACRO, etc.), so ist während der Ausführung dieses Macros der TabControl gesperrt, d.h. die Karteikarten des TabControls können nicht aktiviert werden.

Wird GR_TABCONTROL mit NOWAIT aufgerufen, so können die Karteikarten des TabControls auch aktiviert werden, wenn in anderen Programmzweigen weitere Windows geöffnet werden. Ist dies nicht gewünscht, können vor dem Öffnen weiterer Windows die beiden Windows des TabControls mit der Anweisung ENABLE_WINDOW gesperrt werden. Dies ist nicht notwendig, wenn ein Macro aus dem TabControl läuft, da dann der TabControl gesperrt ist.

 

<TYP> legt das Aussehen der TabControls fest:

 

<TYP>
0

1
2
3
jeder andere Wert

Bedeutung
Die Variable EBUS_TABCONTROL legt das Aussehen fest.
Aussehen wie bei Windows 95
Aussehen wie bei Word 6.0
Spiralblock
Aussehen wie bei Windows 95

 

Unter Java legt <TYP> fest, wo die Karteikartenreiter angeordnet werden.

 

<TYP>

Anordnung der Karteikartenreiter unter Java

 

2

Unten

 

3

Links

 

4

Rechts

 

sonst

Oben

 

Der aktuelle Wert der Variablen EBUS_TABCONTROL wird in der INI-Datei des Programms gespeichert und bei jedem Start des Programms wieder eingelesen. Wird bei GR_TABCONTROL als <TYP> der Wert 0 angegeben, so kann der Programmbenutzer das Aussehen der TabControls mit Hilfe der Konfigurationsmaske selbst festlegen.

 

<ZEILE> und <SPALTE> legen die linke obere Ecke des Datenbereichs des TabControls fest. Der Datenbereich beginnt direkt unter den Karteikartenreitern. Da die Anzeige im aktuellen Window bzw. Main-Window erfolgt, wird die Position des Datenbereichs des TabControls relativ zur linken oberen Ecke des Windows angegeben, d.h. das 1. Zeichen oben links im Window hat die Koordinaten (1,1).

<HOEHE> und <BREITE> legen die Größe des Datenbereichs in Zeilen und Spalten fest.

Die Höhe der Karteikartenreiter wird durch die Variable EBUS_TABCONTROL_HEADERSIZE und die Schriftgröße im Karteikartenreiter durch die Variable EBUS_TABCONTROL_TEXTSIZE festgelegt. Die Schriftart wird durch die Anweisung GR_TABCONTROL_HEADERFONT festgelegt

Bei Tabcontrols können Bilder (Icons oder Bitmaps) im Karteikartenreiter angezeigt werden. Der Name der Bilddatei muß vor der Maskenüberschrift angegeben werden. Vor dem Bildnamen muß das Zeichen '@' und danach das Zeichen ',' stehen. Die Variable EBUS_TABCONTROL_BITMAPMODE legt fest, wie die Bilder im Karteikartenreiter angezeigt werden.

 

Beispiel:

Maskenüberschrift: @XY.BMP,Eigenschaften
Im Karteikartenreiter wird das Bild XY.BMP und der Text "Eigenschaften" angezeigt.

 

<REITER-PRO-ZEILE> legt fest, wieviele Karteikartenreiter maximal nebeneinander angereiht werden. Sind mehr Maskennummern als <REITER-PRO-ZEILE> angegeben, so erfolgt die Anzeige der Karteikartenreiter mehrstufig hintereinander. Ist <REITER-PRO-ZEILE> <= 0, so werden jeweils soviele Karteikartenreiter nebeneinander angereiht wie aufgrund der Breite der Überschriften möglich sind.

Ist <REITER-PRO-ZEILE> < 0 und passen alle Karteikartenreiter nicht in eine Zeile, so kann unter Java in den Karteikartenreitern gescrollt werden.

Es können beliebig viele Maskennummern angegeben werden. Es spielt keine Rolle, ob eine Maske eine Vollbildmaske oder ein Maskenwindow ist.

Die in der Funktion GR_TABCONTROL angegebenen Masken dürfen im Programm an anderen Stellen beliebig auch mit CALL #... oder GOTO #... aufgerufen bzw. angesprungen werden.

GR_TABCONTROL lädt die jeweils ausgewählte Maske in den Datenbereich und startet die Feldverarbeitung. Ist der Datenbereich zu klein für die Maske, so werden überstehende Texte und Maskenfelder abgeschnitten. Die abgeschnittenen Maskenfelder werden aber in der Feldverarbeitung trotzdem angesprungen, auch wenn sie nicht sichtbar sind.

Die Feldverarbeitung erfolgt bei GR_TABCONTROL genauso wie bei allen anderen Vollbildmasken und Windows. Deshalb sind auch alle Anweisungen und Funktionsaufrufe zulässig, auch mehrstufige GR_TABCONTROL-Aufrufe. Die einzige Ausnahme bildet die Anweisung GOTO #... . Wenn GR_TABCONTROL aktiv ist, so können Masken nur mit CALL #... aufgerufen werden. Die interne Programmlogik läßt den Maskenansprung mit GOTO #... nicht zu.

Der Macro vor Maskenausgabe wird unter Java nur einmal beim Erzeugen des Tabcontrols ausgeführt. Beim späteren Aktivieren einer Tabcontrolmaske wird der Macro nicht mehr ausgeführt. Dagegen wird der Macro nach Maskenausgabe jedesmal ausgeführt, wenn die Maske aktiviert wird.

Programmintern werden zur Darstellung der TabControls zwei Windows geöffnet. Sollen im aktuellen Window bzw. im Main-Window auch Pushbuttons außerhalb der TabControls gedrückt werden können, so muß der Variablen EBUS_PUSHBUTTON_DEPTH ein Wert >= 2 zugewiesen werden, da die Pushbuttons sich wegen der internen TabControl-Windows auf einem zwei Stufen tiefer liegenden Window befinden.

Die Funktion GR_TABCONTROL liefert als Ergebnis 0, wenn kein Fehler auftrat, andernfalls eine der folgenden Fehlernummern:

 

                7800

TabControl paßt nicht in aktuelles Main-Window/Window

 

                7801

Nicht genügend Platz für die Karteikartenreiter vorhanden

 

                7802

Zu viele TabControls geöffnet ( > 100)

 

GR_TABCONTROL liefert unter Java bei NOWAIT als Ergebnis –1, falls ein Fehler auftrat. Die Variable OK enthält dann die Fehlernummer.

Beispiel:

H% = GR_TABCONTROL(0,5,10,10,30,3,#20,#30,#40,#50)

siehe auch:

GR_TABCONTROL_HEADERFONT, EBUS_TABCONTROL_HEADERSIZE, EBUS_TABCONTROL_TEXTSIZE, EBUS_TABCONTROL, EBUS_TABCONTROL_BITMAPMODE, ACTIVATE_TABCONTROL, ENABLE_TABCONTROL, DISABLE_TABCONTROL,
ENABLE_WINDOW
, CLOSE_TABCONTROL