Anterior  Sumário  Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

SET Key

Propósito

Associar uma tecla de função à execução de uma PROCEDURE ou inibir a função da tecla.

Sintaxe

SET KEY <numero> ON | off

SET KEY <numero> TO [<nome>]

Argumentos

<numero>

representa o código da tecla de controle.

  27 (esc)
    5 (seta para cima)
  24 (seta para baixo)
    1 (home)
  19 (seta para esquerda)
    4 (seta para a direita)
  22 (insert)
    7 (delete)
  18 (página para cima)
    3 (página para baixo)
    6 (end)
    9 (tab)
  28 (pf1)
  -1 (pf2)
  -2 (pf3)
  -3 (pf4)
  -4 (pf5)
  -5 (pf6)
  -6 (pf7)
  -7 (pf8)
  -8 (pf9)
  -9 (pf10)

<nome>

representa o nome da PROCEDURE que será executada ao se pressionar a tecla designada.

Utilização

Executa uma PROCEDURE a partir de qualquer estado de espera. A PROCEDURE executada não pode receber parâmetros. Caso haja necessidade de se passar valores para esta PROCEDURE, os parâmetros devem ser passados como variáveis públicas. Permite que na PROCEDURE executada obtenha-se GETs sem atrapalhar os GETs do programa que a executou.

Muito útil na execução de HELPS .

Para se cancelar a definição anterior da tecla basta não se declarar o nome da PROCEDURE.

SET KEY OFF desabilita a tecla sem perder a configuração anterior.

Exemplo

O exemplo a seguir mostra-nos a utilização de uma PROCEDURE para ajudar na digitação de dados. Note que a PROCEDURE proc_cod ao ser executada, desabilita a tecla que a executa, para evitar reentrância.

$NOLIB

PROG

SET KEY 28 TO proc_cod     && Associa a tecla F1 a PROCEDURE proc_cod

SET CONFIRM ON

cod = 0

MESSAGE "Em caso de dúvida pressione F1" BLINK

@ 10,10 SAY "Código do Produto " GET cod  PIC "99" ;

VALID cod >=1 .AND. cod <=5

READ

QUIT(0)

PROCEDURE proc_cod

SET KEY 28 OFF     && desabilita a tecla F1

DECLARE vet_cod[05] = SPACE(30)

vet_cod[01] = "01 - Parafuso 01"

vet_cod[02] = "02 - Parafuso 02"

vet_cod[03] = "03 - Parafuso 03"

vet_cod[04] = "04 - Parafuso 04" 

vet_cod[05] = "05 - Parafuso 05"

opt = ACHOICE(01, 01, 07, 31, vet_cod)

@ 01,01 CLEAR TO 07,31

opt = IIF(opt = -1, opt + 2, opt + 1)

KEYBOARD LEFT(vet_cod[opt], 2)

SET KEY 28 ON     && Habilita a tecla F1

RETURN

Consulte

@ ... GET, ACCEPT, INPUT, KEYBOARD, MENU TO, WAIT e INKEY( ).

Anterior  Sumário  Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!