INKEY()
 Extrai um caractere do buffer de teclado
------------------------------------------------------------------------------

 Sintaxe

     INKEY([<nSegundos>]) --> nCodInkey

 Argumentos

     <nSegundos> especifica a quantidade de segundos que INKEY() deve
     esperar por uma tecla.  O valor pode ser especificado em incrementos do
     tamanho de até um décimo de segundo.  Se for especificado zero, o
     programa pára até que uma tecla seja pressionada.  Caso <nSegundos>
     seja omitido, INKEY() nao espera por uma tecla.

 Retorno

     INKEY() retorna um valor numérico inteiro de -39 até 386, que
     identifica a tecla extraída do buffer de teclado.  Caso o buffer de
     teclado esteja vazio, INKEY() retorna zero.  INKEY() retorna valores
     para todas as combinaçoes de caracteres ASCII, teclas de funçao,
     Alt-tecla de funçao, Ctrl-tecla de funçao, Alt-letra, e Ctrl-letra.

 Descriçao

     INKEY() é uma funçao de tratamento de teclado que extrai a próxima
     tecla pendente no buffer de teclado e retorna um valor que representa
     esta tecla.  O valor também é gravado internamente e pode ser acessado
     através da funçao LASTKEY().  Caso o argumento <nSegundos> seja
     especificado e nao haja teclas pendentes no buffer, acontece uma pausa
     na execuçao do programa até que apareça uma tecla no buffer de teclado,
     ou entao até os <nSegundos> especificados tenham passado.  O período de
     tempo que INKEY() espera baseia-se no relógio do sistema operacional e
     nao é relacionado à velocidade do microprocessador.  Se <nSegundos> for
     zero, há uma pausa na execuçao do programa até que uma tecla seja
     colocada no buffer.  Observe que INKEY() nao é um estado de espera e,
     portanto, as teclas configuradas por SET KEY nao sao ativas.

     INKEY() é semelhante à funçao NEXTKEY().  De forma diferente de
     INKEY(), porém, NEXTKEY() lê mas nao extrai a tecla do buffer de
     teclado.  Esta funçao é útil quando você precisa verificar se uma tecla
     foi pressionada sem que a mesma seja processada.

     INKEY() é a funçao básica do sistema Clipper para capturar teclas do
     buffer de teclado.  É utilizada para receber o teclado ou parar a
     execuçao do programa até que o usuário pressione uma tecla.  Por
     exemplo, você pode utilizar INKEY() para terminar comandos com
     abrangência de registros tais como LIST, LABEL FORM, e REPORT FORM se
     ela for incluída em uma condiçao WHILE.  Consulte o exemplo abaixo.

     Para uma lista completa de códigos INKEY() e constantes Inkey.ch,
     consulte o Apêndice C deste livro.

 Exemplos

       O exemplo a seguir captura qualquer tecla do teclado e depois
        exibe o valor caractere da tecla seguido do valor INKEY():

        #include "Inkey.ch"
        //
        LOCAL nInkeyCode := 0
        DO WHILE LASTKEY() != K_ESC
           ? "Aperte qualquer tecla: "
           nInkeyCode := INKEY(0)
           ?? "Caractere:", CHR(nInkeyCode),;
              "Codigo INKEY():", LTRIM(STR(nInkeyCode))
        ENDDO
        RETURN

       Este exemplo utiliza INKEY() para receber uma tecla de
        interrupçao do usuário durante um REPORT FORM.  Se o usuário
        pressionar Esc durante o processo de impressao, o comando REPORT
        FORM termina:

        #include "Inkey.ch"
        //
        USE Sales INDEX Salesman NEW
        REPORT FORM Monthly FOR MONTH(SalesDate) == MONTH(DATE());
           WHILE INKEY() != K_ESC

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

See Also: CHR() LASTKEY() NEXTKEY() SET KEY Códigos INKEY()