Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt die erste während der timeout-Periode gedrückte Taste zurück.
int _InKey(int timeout, int flag)
int timeout; /* Timeout period. */
int flag; /* Option(s). */
Hinweise
Die timeout-Periode wird als eine Anzahl von Zeitgeberticks vom Betriebssystem (1000/Sekunde) angegeben. Eine Timeout (Zeitüberschreitung)-Periode von 0 veranlasst Visual FoxPro zu warten, bis eine Taste gedrückt wird. Ein negativer Zeitüberschreitungswert sorgt dafür, dass _InKey( ) sofort zum aufrufenden Programm zurückkehrt, wenn keine Taste gedrückt wird.
Sie können flag mit einer oder beiden der folgenden Optionen angeben:
- SHOWCURSOR oder HIDECURSOR
- MOUSEACTIVE
Mit Hilfe von SHOWCURSOR können Sie den Cursor einblenden. Mit Hilfe von HIDECURSOR können Sie den Cursor ausblenden. Ohne Angabe verhält sich der Cursor entsprechend der SYS(2002)-Einstellung. Der zusätzliche Attributwert MOUSEACTIVE bewirkt, dass _InKey( ) Mausklicks als Tastenanschläge behandelt. _InKey gibt 151 für einen Mausklick zurück. Wenn Sie zwei Attributwerte spezifizieren möchten, verwenden Sie den C-Operator | oder den +-Operator.
Anmerkung Leerlaufroutinen dürfen _InKey( ) nicht aufrufen.
Sie können Ereignisbehandlungsroutinen schreiben, die _InKey( ) aufrufen. Dabei sollten Sie jedoch vorsichtig vorgehen, da _InKey( ) die Ereignisbehandlungsroutinen rekursiv aufruft.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird _InKey( ) von Visual FoxPro mit zwei Attributen aufgerufen.
Visual FoxPro-Code
SET LIBRARY TO INKEY
#define SHOWCURSOR 1
#define HIDECURSOR 2
#define MOUSEACTIVE 4
= XINKEY(0, SHOWCURSOR + MOUSEACTIVE)
C-Code
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
_RetInt(_InKey((int) parm->p[0].val.ev_long,
(int) parm->p[1].val.ev_long), 10);
}
FoxInfo myFoxInfo[] = {
{"XINKEY", (FPFI) Example, 2, "I,I"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
INKEY( )-Funktion | Zugreifen auf die Visual FoxPro-API | ReadTimeout-Eigenschaft