keycheck

Die Tastatur wird gecheckt. Wurde [Esc] gedrückt, kommt die Frage: "Abbruch? j/n"

(Wurde nicht [Esc] gedrückt, passiert gar nichts)

Anschließend kann man mit  if yes ... bzw.  if no ...  angeben, was passieren soll, wenn der Nutzer [Ja] bzw. [Nein] geantwortet hat.

Das Programm macht nicht weiter, solange nicht mit [Ja] oder [Nein] geantwortet wurde.

 

keycheck x

Die Tastatur wird gecheckt; wurde eine Taste gedrückt, wird das Zeichen in die iV kopiert.

Anschließend kann man mit  if yes ... checken, ob eine Taste gedrückt wurde. Mit if "a" ... kann man testen, ob der Buchstabe 'a' gedrückt wurde.

 

 

Hinweis:

Einbau solcher Befehle in Schleifen empfiehlt sich in jedem Fall, wenn es sein kann, daß die Schleife sehr lange laufen wird. Siehe FLEX-Datei   ftr.flx  (Volltextsuche per FLEX).

Dieser Befehl ist NUR in Schleifen sinnvoll, denn das Programm hält nicht an, um auf eine Taste zu warten! Angehalten wird nur im ersten Fall, wenn also zu dem Zeitpunkt gerade eine Taste gedrückt wurde, wenn der Befehl erreicht wird.

Nebeneffekt dieses Befehls (erwünscht): Das Hauptfenster wird regelmäßig von Windows aus erneuert, während es sonst während des Schleifen-Ablaufs u.U. nicht aktualisiert wird.

 

Beispiel 1:

Man hat eine Schleife programmiert und will es innerhalb der Schleife dem Nutzer ermöglichen, diese abzubrechen. Sinnvoll ist das natürlich, wenn sehr große Ergebnismengen zu verarbeiten sind, oder gar die gesamte Datenbank.

 

:schleife

...  Befehle

keycheck

  Wurde [Esc] gedrückt? Wenn ja und Nachfrage mit ja beantwortet, dann -> :exit

if yes jump exit

...  weitere Befehle

jump schleife

:exit

...  Hier geht's nach dem Abbruch weiter

 

Beispiel 2:

Das Programm soll warten, bis der Nutzer a oder b gedrückt hat. Bei x soll das Programm enden.

 

:schleife

var ""

keycheck x

  Wurde eine Taste gedrückt?

if "a" jump aktion-a

if "b" jump aktion-b

if "x" end

...  weitere Befehle

jump schleife

:aktion-a

...  Hier geht's nach Druck auf 'a' weiter

...

:aktion-b

...  Hier geht's nach Druck auf 'b' weiter

...