"KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Moderator: Moderatoren
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
"KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Nur zur Info hier, falls jemand außer mir noch Text-Modus unter GUI benutzt.
Das ging schon mal wie dokumentiert, seit einer Weile aber nicht mehr.
Hat mir Probleme bereitet vor ACHOICE() und in UDF dafür.
Vermeide ich nun mit:
KEYBOARD CHR(1)
INKEY()
Das ging schon mal wie dokumentiert, seit einer Weile aber nicht mehr.
Hat mir Probleme bereitet vor ACHOICE() und in UDF dafür.
Vermeide ich nun mit:
KEYBOARD CHR(1)
INKEY()
Zuletzt geändert von dtmackenzie am Fr, 27. Aug 2021 9:56, insgesamt 1-mal geändert.
Viele Grüße,
David
David
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren
Ich hab immer Keyboard() ohne Parameter für solche Fälle aufgerufen.
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren
Danke Marcus!
In der Hilfe finde ich KEYBOARD nur als Command, es war mir nicht bewusst, dass es auch eine Funktion dazu gibt.
Weißt Du zufällig, ob sie auch noch mit der aktuellen Version der Workbench (Build 1461) funktioniert?
Sonst könnte ich natürlich auch selber probieren.
In der Hilfe finde ich KEYBOARD nur als Command, es war mir nicht bewusst, dass es auch eine Funktion dazu gibt.
Weißt Du zufällig, ob sie auch noch mit der aktuellen Version der Workbench (Build 1461) funktioniert?
Sonst könnte ich natürlich auch selber probieren.
Viele Grüße,
David
David
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren
hi,
ich verwende
ein Zeichen in die Event-Queue zu "schreiben" um die zu "leere" ... hm
ich verwende
CLEAR TYPEAHEAD - Alle Zeichen aus dem Tastaturpuffer bzw. der Ereigniswarteschlange entfernen
gruss by OHR
Jimmy
Jimmy
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren
Recht herzlichen Dank Jimmy!
CLEAR TYPEAHEAD ist optimal - selbsterklärend und genau dafür gedacht - und funktioniert!
CLEAR TYPEAHEAD ist optimal - selbsterklärend und genau dafür gedacht - und funktioniert!
Viele Grüße,
David
David
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
CLEAR TYPEAHEAD ist ein Command auf die Funktion keyboard()
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Hallo Marcus,
seltsam, die Funktion keyboard() wurde bei mir nicht gefunden und führte zum Kompilationsfehler.
CLEAR TYPEAHEAD ging aber, und ist dokumentiert, also bleibe ich dabei.
Trotzdem Danke!
seltsam, die Funktion keyboard() wurde bei mir nicht gefunden und führte zum Kompilationsfehler.
CLEAR TYPEAHEAD ging aber, und ist dokumentiert, also bleibe ich dabei.
Trotzdem Danke!
Viele Grüße,
David
David
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Mein Fehler: CLEAR TYPEAHEAD ist ok.
Wird aud die Funktion _Keyboard() umgesetzt.
Man sollte aber das COMMAND verwenden.
Wird aud die Funktion _Keyboard() umgesetzt.
Man sollte aber das COMMAND verwenden.
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Nur zur Info:
Seltsamerweise ist manchmal auch CLEAR TYPEAHEAD nicht ausreichend, aber ich weiß nicht, ob das Problem allgemein nachvollziehbar ist.
Ich habe den Effekt, dass ausgewählt wird wenn ein ACHOICE offen ist und das Windows-Fenster verschoben wird!
Ich behalte zwar CLEAR TYPEAHEAD drin, mache aber nun zusätzlich doch KEYBOARD CHR(1) und INKEY() um das Problem zu umgehen.
Seltsamerweise ist manchmal auch CLEAR TYPEAHEAD nicht ausreichend, aber ich weiß nicht, ob das Problem allgemein nachvollziehbar ist.
Ich habe den Effekt, dass ausgewählt wird wenn ein ACHOICE offen ist und das Windows-Fenster verschoben wird!
Ich behalte zwar CLEAR TYPEAHEAD drin, mache aber nun zusätzlich doch KEYBOARD CHR(1) und INKEY() um das Problem zu umgehen.
Viele Grüße,
David
David
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
hi,
benutzt du eine UDF zu ACHOICEdtmackenzie hat geschrieben: ↑Mo, 30. Aug 2021 10:12 Ich habe den Effekt, dass ausgewählt wird wenn ein ACHOICE offen ist und das Windows-Fenster verschoben wird!
gruss by OHR
Jimmy
Jimmy
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Hallo Jimmy,
ja, UDF sieht so aus.
Enthält zwar auch CLEAR TYPEAHEAD, ich meine aber nicht diese Zeile sondern vor dem Aufruf von ACHOICE.
ja, UDF sieht so aus.
Enthält zwar auch CLEAR TYPEAHEAD, ich meine aber nicht diese Zeile sondern vor dem Aufruf von ACHOICE.
Code: Alles auswählen
FUNC lifu_achoice_udf(nMode, nElement, nRow)
LOCAL nReturn:=AC_CONT,; // default: continues
nKey:=LastKey(), owa:=SELECT()
IF nMode == AC_EXCEPT
DO CASE
CASE nKey == K_RETURN
nReturn := AC_SELECT // select element
CASE nKey == K_ESC
nReturn := AC_ABORT // terminate AChoice()
CASE nKey == K_F4
IF nElement > 0 .AND. nElement <= LEN(aFeld)
SELECT lk
DBSEEK(VAL(aFeld[nElement, 1]))
//IF nrLK>1
// lk_RecEdit(.f.) //Datensatz bearbeiten
//ELSE
lk_RecView() //Datensatz zeigen
//END
SELECT (owa)
CLEAR TYPEAHEAD // Avoid F4 being processed again
END
CASE nKey=K_ALT_Y // Neue Instanz des Programmes starten
Start_New()
OTHERWISE
// nReturn := AC_GOTO // jump to element
ENDCASE
END
RETURN nReturn
Viele Grüße,
David
David
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
hi,
siehe mal unter XbpWindow() -> MOVE
vielleicht kannst du dort "abfangen" was dich stört wenn
siehe mal unter XbpWindow() -> MOVE
Code: Alles auswählen
:move := {| aOldPos, aNewPos, self | ... }
ein ACHOICE offen ist und das Windows-Fenster verschoben wird!
gruss by OHR
Jimmy
Jimmy
- dtmackenzie
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Do, 22. Nov 2007 9:02
- Wohnort: Leipzig
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 22 Mal
- Kontaktdaten:
Re: "KEYBOARD CHR(0)" scheint nicht mehr den Buffer zu leeren [ERLEDIGT - stattdessen CLEAR TYPEAHEAD benutzen]
Hi Jimmy,
da ich im Textmodus unter GUI arbeite, benutze ich nicht explizit XbpWindow.
Aber vielleicht kann ich es mit AppDesktop() holen...
Das Workaround scheint zwar erstmal zu gehen, aber das ist schon eine interessante Idee, Danke!
da ich im Textmodus unter GUI arbeite, benutze ich nicht explizit XbpWindow.
Aber vielleicht kann ich es mit AppDesktop() holen...
Das Workaround scheint zwar erstmal zu gehen, aber das ist schon eine interessante Idee, Danke!
Viele Grüße,
David
David