DialogFromFile

Top  Previous  Next

 

Erzeugt ein Bildschirmmenü.

Ein Bildschirmmenü ist ein separates Fenster mit Buttons, die Moskito-Funktionen auslösen können. Das Fenster kann frei positioniert werden, es kann auch mehrere dieser Fenster gleichzeitig geben. Ein solches Fenster kann mit DialogFromFile mit Hilfe einer Datei beschrieben werden. Diese Datei enthält die Größe und Position des Fensters und die Buttons in diesem Fenster, wie auch die Funktionen, die die Buttons auslösen.

Das Format der Datei, mit der das Bildschirmmenüfenster festgelegt wird, ist relativ starr. Kommentare sind nicht vorgesehen, Leerzeilen sind nicht erlaubt.

Die Datei wird, wenn vom Anwender nichts anderes angegeben wird, aus dem mit GDS$MENUE bezeichneten Verzeichnis entnommen und es wird von der Dateiendung .dlg ausgegangen.

Die Datei beginnt mit einer Zeile, in der der Name des Fensters und die Größe des Fensters festgelegt werden.

<Fenstername> <x-Position> <y-Position> <Breite> <Höhe>

Alle Folgezeilen legen jeweils einen Button fest.

„b“ <Buttontext> <x-Position> <y-Position> <Breite> <Höhe> <ID> <Flags> <Komando>

Der Buttontext darf, genau wie der Fenstertitel, keine Leerzeichen enthalten.

Die x,y-Positionen sind relativ von der Fensterposition aus zu berechnen.

Das Kommando kann Leerzeichen enthalten, wenn der Text in Anführungszeichen steht. In diesem Fall darf sich das Komando auch über mehrere Zeilen erstrecken, sodaß auch mehr als eine Funktion ausgelöst werden kann. Wenn in diesem Komando eine Eingabe erfolgen soll, dann muß an der entsprechenden Stelle der Zeile „%%%%input“ stehen.

Die ID ist eine Zahl, die innerhalb eines Fensters eindeutig sein muß. Mit dieser Zahl wird das Komando identifiziert. Mit der ID kann auch der Text des Button verändert werden. Der genaue Aufbau ist am besten aus dem nachfolgenden Beispiel ersichtlich.

Beispiel:

HW 0 0 152 420

b EOJ 2 2 21 11 3 WS_VISIBLE|BS_PUSHBUTTON EOJ

b OPE 26 2 21 11 2 WS_VISIBLE|BS_PUSHBUTTON "OpenDatabase /w"

b IEL/VEL 5 140 50 12 111 WS_VISIBLE|BS_PUSHBUTTON "IdentifyElement

%%%%input

ViewElement /w"

Es wird ein Dialog mit 152 Pixel Breite und 420 Pixel Höhe unten links erzeugt. In diesem Dialog existieren 3 Buttons. Der erste Button hat den Text „EOJ“ als Beschriftung und setzt auch genau diesen Text ab, wenn er betätigt wird. Der Button beginnt 2 Pixel rechts vom Fensterrand und 2 Pixel oberhalb des unteren Randes und hat die ID 2.

Der nächste Button liegt rechts vom ersten und setzt das Komando OpenDatabase /w ab. Da in diesem Text ein Leerzeichen vorkommt, wird der String mit „“ eingefaßt. Der letzte Button mit der Beschriftung IEL/VEL setzt ein Komando aus mehreren Zeilen ab. Zwischen den beiden Kommados, die dieser Button absetzt, wird auf eine Eingabe gewartet.

Voraussetzung

Environmentvariable GDS$MENUE gesetzt.

Menüdefinition liegt als Datei in dem Verzeichnis vor, auf das GDS$MENUE zeigt.

Parameter

name

Erster Parameter ist der Name der Datei, die die Dialogdefinition enthält. Standard ist die Endung .dlg und der durch GDS$MENUE angegebene Pfad.

id

Zweiter Parameter ist eine ID, unter der dieser Dialog geführt wird. Diese Zahl zwischen 1 und 65535 muß eindeutig sein.

parentId

Dritter, optionaler Parameter ist die ID des Fensters, an das das neue Fenster gekoppelt wird. Es wird dann immer mit dem parentWindow zusammen bewegt. Außerdem wird es unsichtbar geöffnet. -1 und -2 haben Sonderbedeutungen: -1 koppelt das neue Fenster an das Inputfenster, -2 koppelt das neue Fenster an das Planfenster.

Rückgabewert

Wert

Beschreibung

0

Aufruf wurde erfolgreich durchgeführt

sonst

Fehler aufgetreten

Dialog

Menuedatei <datei> konnte nicht geöffnet werden

Die als Parameter übergebene Datei konnte nicht geöffnet werden. Danach wird die Funktion verlassen.

Beispiel

DialogFromFile utility 2 -2

Der Utility-Dialog wird geöffnet. (Er enthält die Buttons für CLS, EBD, CON, ...). Er wird an das Planfenster gekoppelt und wird nie hinter diesem verschwinden. Der Dialog erhält die ID 2.

Bemerkung

Siehe auch