Ein kleines Beispiel: Wir befinden uns im Interpreter und haben ein faceVALUE-Programm geladen. Nach dem Programmstart kümmert sich die Engine um die Verwaltung des Hauptmenüs. Der Benutzer klickt nun vielleicht den Menüeintrag "Optionen" an, woraufhin die Engine dann die dafür vorgesehene User-Prozedur aufrufen wird. Zum Öffnen des Optionen-Dialoges wird dann dort ein Aufruf der Prozedur win_open_dialog aus der faceVALUE-Bibliothek eingetragen. Die Engine übernimmt daraufhin die komplette Verwaltung des Dialoges. Wenn der Benutzer dann den OK-Knopf betätigt, wird abermals eine User-Routine angesprungen, und Sie können dort den Dialog mit dem Aufruf der Prozedur win_close_dialog wieder schließen.

Nach diesem Prinzip läuft die komplette Ereigniskommunikation mit der faceVALUE-Engine ab. Was noch fehlt, ist die Wertekommunikation. Sie möchten ja nicht nur wissen, wann der Benutzer einen Knopf auswählt, sondern auch, welche Werte er in den Dialogen eingestellt hat. Dazu gibt es zu jedem Dialogobjekt Statusvariablen, die Sie im Programm abfragen und setzen können. Checkbuttons zum Beispiel erhalten Bool-Variablen. Eine solche Variable hat den Wert TRUE, wenn der zu der Variablen gehörende Knopf angewählt ist, und den Wert FALSE, wenn der Knopf nicht angewählt ist. Jeder Satz von Radiobuttons erhält eine Word-Variable, deren Nummer den gerade aktiven Buttons widerspiegelt. Texteingabeelemente bekommen Statusvariablen vom Typ String, für Listboxen gibt es Arrays und so weiter.

Diese Statusvariablen werden von der Engine immer auf dem aktuellen Stand gehalten, so daß Sie jederzeit auf die Werte zugreifen können. Auch das manuelle Ändern der Werte funktioniert entsprechend. Die Statusvariablen können von Ihnen einfach verändert werden. Nach einer solchen Änderung müssen Sie dies der Engine aber noch mitteilen, damit die neuen Werte angenommen werden.

ein Beispielprogramm

Ein kleines Beispiel sagt vermutlich mehr als tausend Worte. Das Beispiel in Listing 2 soll Ihnen einen kleinen Einblick in die faceVALUE-Programmierung geben. Das Programm öffnet zu Beginn ein Fenster mit Kreisen. Im Menü kann man über 3 Menüpunkte den Radius der Kreise variieren.

Face Value - 5 / 10

75