SETKEY()
 Atribui um bloco de açao a uma tecla
------------------------------------------------------------------------------

 Sintaxe

     SETKEY(<nCodInkey>, [<bAçao>]) --> bAcaoCorrente

 Argumentos

     <nCodInkey> é o valor INKEY() da tecla a ser associada ou
     questionada.

     <bAçao> especifica o bloco de código a ser automaticamente
     executado sempre que a tecla especificada for pressionada durante um
     estado de espera.

 Retorno

     SETKEY() retorna o bloco de açao correntemente associado à tecla
     especificada, ou NIL caso a tecla especificada nao esteja associada a
     um bloco.

 Descriçao

     SETKEY() é uma funçao de tratamento de teclado utilizada para
     configurar ou questionar a açao automática associada a um tecla
     específica durante um estado de espera.  Um estado de espera é qualquer
     modo que espera por uma teclagem, exceto INKEY(), mas incluindo
     ACHOICE(), DBEDIT(), MEMOEDIT(), ACCEPT, INPUT, READ e WAIT.  Podem ser
     atribuidas no máximo 32 teclas por vez.  Na inicializaçao, o sistema
     automaticamente atribui à tecla F1 a execuçao de uma rotina ou funçao
     definida pelo usuário chamada Help.

     Quando uma tecla atribuida for pressionada durante um estado de espera,
     a <bAçao> associada recebe PROCNAME(), PROCLINE(), e READVAR() como
     parâmteros e é executada, através da funçao EVAL().  Nao é necessário,
     porém, relacionar os argumentos ao se especificar a <bAçao> se você nao
     planeja usá-los no bloco de açao.

     SETKEY() é semelhante ao comando SET KEY, o qual associa a invocaçao de
     uma rotina a uma tecla.

 Exemplos

     Este fragmento de código ilustra como associar um bloco de açao a uma
     tecla, e depois executá-lo com a funçao EVAL() após capturar uma tecla
     usando INKEY():

     #include "Inkey.ch"
     SETKEY(K_DN, {|cProc, nLine, cVar| MyProc(cProc, nLine, cVar)})
     .
     . <declaraçoes>
     .
     WHILE .T.
        nKey := INKEY(0)
        DO CASE
        CASE (bAction := SETKEY(nKey)) != NIL
           EVAL(bAction, PROCNAME(), PROCLINE(), READVAR())
        CASE nKey = K_PGUP
           Previous()
        CASE nKey = K_PGDN
           Next()
        CASE nKey = K_ESC
           EXIT
        ENDCASE
     ENDDO

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

See Also: EVAL() INKEY() SET KEY Códigos INKEY()