EPOC-Programmierung: Dialoge

Willemers Informatik-Ecke

Erstellung eines Dialogs

Mit dem Befehl dINIT werden die Dialogstrukturen gestartet. Es muss vor dem Aufbau eines Dialogs aufgerufen werden. dInit hat keine Parameter. Direkt darauf folgen in Reihenfolge die gewünschten Kontrollelemente. Mit dem Befehl DIALOG erscheint der Dialog auf dem Bildschirm. Das Programm erhält erst wieder die Kontrolle, wenn der Anwender den Dialog beendet hat. Der Rückgabewert 0 besagt, dass der Anwender den Dialog abgebrochen hat.

Beispiel:

Es wird eine Dialogbox erzeugt, die untereinander ein Eingabefeld für einen Namen, ein Passworteingabefeld und ein Auswahlfeld für einen Dateinamen hat.

dINIT
dEDIT name$, "Name"
dXINPUT passwd$,"Passwort"
dFILE file$,"Meine Datei:",0
IF DIALOG
   REM Hier auswerten
ENDIF

Kontrollelemente

Bei EPOC werden alle Kontrollelemente untereinander dargestellt. Es gibt keine Positionierung, wie man das von Windows kennt. Letztlich wird das Programmieren dadurch natürlich einfacher, da man sich nicht mit dem Design befasst.

Texteingabe (dEDIT und dXINPUT)

Das Element dEDIT kann eine Textzeile in eine Stringvariable einlesen. Das Element dXINPUT tut das gleiche, zeigt aber bei der Eingabe immer das gleiche Symbol statt der Buchstaben ein, so dass man nicht sehen kann, was eingegeben wurde, so wie man dies bei Passworteingaben verwendet.

dEDIT Ergebnis$, Prompt$ [, Laenge% ]
dXINPUT Ergebnis$, Prompt$ [, Laenge% ]

Listenauswahl (dCHOICE)

Mit dem dCHOICE kann der Benutzer unter verschiedenen vorher festgelegten Elementen eines auswählen. In der Variablen steht der Index des gewählen Elements, beginnend mit 1.

Der Anwender kann mit den Links-/Rechtspfeiltasten durch die Elemente blättern oder mit der Tabulatortaste eine Liste der Elemente aufklappen.

dCHOICE Ergebnis%, Prompt$, KommaseparierteAuswahl$

Zahleneingabe (dLONG und dFLOAT)

Für die Zahleneingabe gibt es spezialisierte Eingabefelder, die nur zulässige Zeichen akzeptieren. dLONG ist für alle ganzzahligen und dFLOAT für Fließkommazahlen zuständig. In beiden Fällen muss die minimale und die maximale Zahl angegeben werden, die der Anwender eingeben können soll.

dLONG Ergebnis&, Prompt$, min&, max&
dFLOAT Ergebnis, Prompt$, min&, max&

Datums- und Zeiteingabe (dDATE und dTIME)

Als Ergebnis einer Datumseingabe erhält man die Anzahl der Tage seit dem 1.1.1990. Diese Form der Darstellung betrifft auch die Angabe von min und max.

Die Uhrzeit wird als Anzahl der Sekunden seit Mitternacht interpretiert. Der anzugebende Typ kann folgende Werte haben:
0 Uhrzeit ohne Sekunden
1 Uhrzeit mit Sekunden
2 Zeitdauer ohne Sekunden
3 Zeitdauer mit Sekunden
Unter Zeitdauer ist eine Angabe wie 3 Stunden und 10 Minuten zu verstehen.

dDATE Ergebnis&, Prompt$, min&, max&
dTIME Ergebnis, Prompt$,typ%, min&, max&

Dateiauswahl (dFILE)

Der Ergebnisstring muss mit mindestens 128 Zeichen definiert sein. Wird als Typ 0 angegeben, wird eine Datei gelesen. dFILE lässt nur eine Auswahl aus den existierenden Dateien zu. Der Typ ist die Summe aus folgenden Werten:
1 auch noch nicht existierende Dateien können angegeben werden.
2 Alle Verzeichnisse des Rechners anzeigen
4 zur Auswahl von Verzeichnissen
8 gibt Fehlermeldung, wenn der angegebene Dateiname bereits existiert
16 fragt, ob die existierende Datei überschrieben werden soll
32 leeren Dateinamen zulassen

dFILE Ergebnis$, Prompt$, Typ%

Textausgabe (dTEXT)

dTEXT Prompt$, Anzeige$, typ%

Dialoge mit veränderten Buttons

Man kann auch Dialoge erzeugen, in denen in der untersten Reihe mehrere Buttons stehen. Das ist beispielsweise bei Ja/Nein Dialogen sehr hilfreich.

dINIT
dTEXT "", "Weitermachen?"
dBUTTONS "ja", j%, "nein", n%
taste% = DIALOG

Die Variable taste% enthält den ASCII-Wert des für den Button definierten Tastendrucks, so wie man es vom Menü her kennt.


Homepage EPOC-Homepage 22.9.2001 (C) Copyright 2001 Arnold Willemer