Função SetKey: Atribui um bloco de código a uma tecla


SetKey() é uma funçao de tratamento de teclado utilizada para configurar ou questionar a ação 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 incluíndo ACHOICE(), DBEDIT(), MEMOEDIT(), ACCEPT, INPUT, READ e WAIT. Podem ser atribuídas no máximo 32 teclas por vez. Na inicialização, o sistema automaticamente atribui à tecla F1 a execução de uma rotina ou função definida pelo usuário chamada Help. setkey Quando uma tecla atribuída for pressionada durante um estado de espera, a associada recebe ProcName(), ProcLine(), e ReadVar() como parâmetros e é executada, através da função EVal(). Não é necessário, porém, relacionar os argumentos ao se especificar a se não planeja usá-los no bloco de código. SetKey() é semelhante ao comando Set Key, o qual associa a chamada de uma rotina a uma tecla.

// Insere um SetKey
SetKey(VK_F12, {|| MsgAlert( "A tecla F12 foi pressionada" )})
 
// Apaga um SetKey
SetKey(VK_F12, {||})
#Include "protheus.ch"

User Function SeuPrograma()
       Static oMainWnd
       DEFINE MSDIALOG oDlg TITLE "Titulo" FROM 0,0 to 500,500 of oMainWnd PIXEL
 
       //seu codigo

       SetKey(VK_F4, {|| Alert("Acionado a tecla F4") })  //Seta um bloco de código para sua tecla

       ACTIVATE MSDIALOG oDlg  CENTERED

       SetKey(VK_F4,{||}) //Limpa a tecla para nao ser acionado fora da sua rotina

Return