KEYBOARD
 Coloca uma cadeia de caracteres (string) no buffer de teclado
------------------------------------------------------------------------------

 Sintaxe

     KEYBOARD <cCodigoTecla>

 Argumentos

     <cCodigoTecla> é o conjunto de caracteres a ser colocado no buffer
     de teclado.

 Descriçao

     O comando KEYBOARD é usado em combinaçao com estados de espera que
     admitem entrada de teclado tais como ACCEPT, INPUT, READ, ACHOICE(),
     MEMOEDIT(), e DBEDIT().  Quando o comando KEYBOARD é executado, ele
     coloca a cadeia de caracteres especificada no buffer de teclado,
     limpando quaisquer comandos de tecla pendentes.  Os comandos de tecla
     permanecem no buffer de teclado até serem extraídos por um comando ou
     funçao de estado de espera, ou pela funçao INKEY().

     Cada comando de teclado é colocado no buffer de teclado como um
     caractere do tipo ASCII.  Geralmente, você usa a funçao CHR() para
     converter o código para seu equivalente ASCII. Este procedimento,
     contudo, apresenta algumas limitaçoes.  Você nao pode colocar comandos
     de tecla cujos equivalentes ASCII sao maiores do que 255 ou menores do
     que zero no buffer de teclado.

     Normalmente, você pode usar o comando KEYBOARD de dentro de um
     procedimento SET KEY para reatribuir teclas num estado de espera.  Uma
     outra forma seria de dentro da funçao usuário ACHOICE().   Nesse caso,
     você digita as teclas que quiser que a funçao ACHOICE() execute antes
     de retornar o controle a ela.  O mesmo se aplica para a funçao
     DBEDIT().

 Exemplos

     O seguinte exemplo usa o comando KEYBOARD para preencher um GET com um
     item vindo de uma lista de seleçao cada vez que o GET é entrado:

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

     FUNCTION PickList
        STATIC aList := { "Primeiro", "Segundo", "Terceiro", "Quarto" }
        LOCAL cScreen, nChoice, nKey := LASTKEY()
        cScreen := SAVESCREEN(10, 10, 14, 22)
        @ 10, 10 TO 14, 22 DOUBLE
        IF (nChoice := ACHOICE(11, 11, 13, 21, aList)) != 0
           KEYBOARD CHR(K_CTL_Y) + aList[nChoice] + CHR(nKey)
        ENDIF
        RESTSCREEN(10, 10, 14, 22, cScreen)
        RETURN .T.

 Arquivos:  Biblioteca CLIPPER.LIB. Arquivo header Inkey.ch.
 To download this example - click here.

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