Criar um menu de opções a partir de um vetor.
ACHOICE (<exp.N1>, <exp.N2>, <exp.N3>, <exp.N4>, <vet.C>)
<exp.N1>,<exp.N2> |
representam as coordenadas do canto superior esquerdo da janela. |
<exp.N3>,<exp.N4> |
representam as coordenadas do canto inferior direito da janela. |
<vet.C> |
vetor-cadeia contendo em seus elementos os títulos das opções que serão exibidas como um menu. |
Retorna um valor numérico correspondente ao item de <vet.C> escolhido. O valor retornado é uma unidade menor do que o número da linha selecionada. Útil na criação de menus instantâneos para a escolha de opções através da tecla {RETURN}. Acionando-se a tecla {ESC} ou interrompendo-se a operação por qualquer outro modo, será devolvido ao controle do programa o valor -1 (menos 1)..
Também é possível a escolha através da digitação do primeiro caracter da opção desejada.
Quando a quantidade de elementos do vetor for maior que os limites da janela, serão apresentados somente os primeiros elementos.
Para acessar o restante dos elementos, basta pressionar o conjunto de setas do teclado. Quando a quantidade de elementos do vetor for menor que os limites da janela, estes são apresentados deixando um espaço entre o último elemento e a linha final da janela.
Quando a barra luminosa chega ao último item do menu, o próximo item exibido é o primeiro e vice-versa. O rolamento é do menu e não da barra. Para desligar esta característica utilizar o comando SET SCROLL OFF.
O exemplo a seguir mostra-nos como utilizar a função ACHOICE() criando um menu com o nome de todos os funcionários.
DECLARE vet_nom[RECCOUNT()] = SPACE (30)
DECLARE vet_key[RECCOUNT()] = NTOF (0)
LOCATE
var_num = 1
DO WHILE FOUND ()
vet_nom[var_num] = fun_nom
vet_key[var_num] = id_fun
INCR var_num
CONTINUE
ENDDO
FIND FTON (vet_key[ACHOICE(01,01,10,32,vet_nom)+1])
$NOBOX, @ ... PROMPT, DECLARE, MENU TO, ACOPY(), ADEL() e ASCAN().