KEYBOARD
 Introduce una cadena en la memoria intermedia del teclado
------------------------------------------------------------------------------
 Sintaxis

     KEYBOARD <cCadena>

 Argumentos

     <cCadena> es la cadena que se va a introducir en la memoria
     intermedia del teclado.

 Descripción

     KEYBOARD es un mandato de teclado que introduce <cCadena> en la memoria
     intermedia del teclado después de borrar cualquier tecla pendiente. Los
     caracteres permanecen en la memoria intermedia del teclado hasta que
     son recogidos por un estado de espera como ACCEPT, INPUT, READ,
     ACHOICE(), MEMOEDIT() y DBEDIT() o INKEY(). Además de caracteres de
     pantalla, <cCadena> puede incluir caracteres de control.

     Normalmente, para convertir un código INKEY() de una tecla de control
     en un valor de carácter, se utiliza CHR(). Existen, no obstante algunas
     limitaciones. Sólo puede introducir caracteres de códigos INKEY()
     comprendidos entre 0 y 255, en la memoria intermedia del teclado.

     Lo más frecuente es que KEYBOARD se utilice con un procedimiento SET
     KEY para reasignar teclas en un estado de espera. Otro uso, en la
     función de usuario ACHOICE(), se basa en introducir las teclas que
     desee que ejecute ACHOICE() antes de que le devuelva el control. El
     mismo concepto se aplica a DBEDIT().

 Ejemplos

      Este ejemplo utiliza KEYBOARD para rellenar un objeto GET con
        un elemento seleccionado de una lista cada vez que se introduce dicho GET:

        #include "Inkey.ch"
        LOCAL cVar1 := SPACE(10), nVar := 2500, ;
               cVar2 := SPACE(10)
        CLEAR
        @ 09, 10 GET cVar1
        @ 10, 10 GET cVar2 WHEN ListaSeleccion()
        @ 11, 10 GET nVar
        READ
        RETURN

        FUNCTION ListaSeleccion
           STATIC aLista := { "Primero", "Segundo", ;
              "Tercero", "Cuarto" }
           LOCAL cPantalla, nSeleccion, nTecla := LASTKEY()
           cPantalla := SAVESCREEN(10, 10, 14, 20)
           @ 10, 10 TO 14, 20 DOUBLE
           IF (nSeleccion := ACHOICE(11, 11, 13, 19, aLista)) != 0
              KEYBOARD CHR(K_CTL_Y) + ;
                     aLista[nSeleccion] + ;
                     CHR(nTecla)

           ENDIF
           RESTSCREEN(10, 10, 14, 20, cPantalla)
           RETURN .T.

 Ficheros   La biblioteca asociada es CLIPPER.LIB,
            el fichero de cabecera asociado es Inkey.ch.

 To download this example - click here.

See Also: CHR() INKEY() LASTKEY() NEXTKEY() SET KEY