KEYBOARD und Lastkey()

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

KEYBOARD und Lastkey()

Beitrag von Manfred »

Hallo,

ich bin es wieder.

Ich habe damals in CLipper über KEYBOARD CHR(27) die ESC Taste simuliert um einen kontrollierten Abbruch zu provozieren. Danach wurde mit :

KEYBOARD CHR(0)
INKEY(0)

der Tastaturpuffer wieder geleert. Das geht natürlich jetzt unter Xbase++ nicht mehr. Ich brauche diese Möglichkeit aber noch. Wie bekomme ich den Tastaturpuffer leer, sodaß kein Lastkey() von 27 mehr geliefert wird? Ich habe schon etliches ausprobiert, aber ich bekomme dieses ESC nicht wieder weg.

Hat jemand eine Idee?

Gruß

Manfred
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

so,

ich habe erstmal eine Ersatzlösung gefunden.

ReadKill() klappt erst einmal. (sieht jedenfalls so aus)

Ich hatte keine bessere Lösung für eine Zwangsbeendung einer tieferen Ebene gefunden, als ESC in den Buffer zu schreiben und dann wieder über KEYBOARD CHR(0) und INKEY(0) zu löschen, damit das vorhergehende READ, innerhalb dessen die Funktion aufgerufen wurde, nicht auch beendet wird.
In diesem Fall war es aber so, dass READ zwar beendet werden sollte, aber die Rückgabe der Funktion einen gefundenen Wert an das GET übergibt, mit dem dann wieder gesucht werden soll. Jaja, hört sich kompliziert an.

Naja, wie oben erwähnt, mit READKILL() klappt es auch.
Manchmal hilft es statt im Index, über Suchen in der XBase++ Doku zu wühlen.

bis demnächst

Manfred

PS: Sollte trotzdem noch jemand eine Idee anderer Art dafür haben, meine Ohren sind offen dafür ;-)
Antworten