Pular para o conteúdo
Início » Advpl VTAchoice

Advpl VTAchoice

    Tipo: TELNET VT100
    Executa um menu pop-up
    Sintaxe
    VTACHOICE(<nTopo>, <nEsquerda>, <nBase>, <nDireita>,
    <acItensMenu>, [<alItensSelecionaveis>],
    [<cFuncaoUsuario>],[<nItemInicial>], [lNaoBranco] , [<lMsg>],
    [<nLinhaJanela>],[<lScroll>]) –> nPosicao
    Parâmetros
    <nTopo>, <nEsquerda> e <nBase>, <nDireita> são as coordenadas do canto superior esquerdo e canto inferior direito
    da janela. Valores de linha podem variar entre zero e VTMAXROW(), e valores de coluna podem variar entre zero e
    VTMAXCOL().
    <acItensMenu> é um vetor que contem as cadeias de caracteres que serão exibidas como sendo os itens de menu.
    Cada item de menu será mais tarde identificado através de sua posição numérica neste vetor.
    <alItensSelecionaveis> é um vetor paralelo de valores lógicos, diretamente relacionados a <acItensMenu> que
    especifica os itens de menu que poderão ser selecionados. Os elementos podem ser valores lógicos ou cadeias de
    caracteres. Caso o elemento seja uma cadeia de caracteres, ele é avaliado como uma expressão macro que deverá
    retornar um tipo de dado lógico. Em ambos os casos, um valor de falso (.F.) significa que o item de menu
    correspondente não está disponível, e um valor de verdadeiro (.T.) significa que está disponível.
    <cFuncaoUsuario> é o nome de uma função definida pelo usuário que é executada quando uma tecla não
    reconhecível for pressionada. O nome da função é especificado como uma expressão caractere sem parênteses ou
    argumentos. Note que o comportamento de VTACHOICE() é afetado pela presença deste argumento. Consulte o
    texto abaixo para maiores informações.
    <nItemInicial> é a posição ocupada no vetor de <acItensMenu> pelo item que aparecer  em destaque quando o menu
    for exibido pela primeira vez. Caso você especifique um item de menu que não esteja disponível, ou caso você não use
    argumento algum, o item que aparecer  em destaque será  o primeiro item selecionável do vetor.
    <lNaoBranco> Se for verdadeiro a opções do menu será montado conforme o tamanho da opção desconsiderando os
    espaços em branco à direita e esquerda. Caso seja negativa ou omitida a opção do menu será montado conforme a
    dimensão da tela do VTACHOICE definida em <nEsquerda> e <nDireita>.
    <lMsg> Conteúdo tem que ser NIL, parâmetro reservado para implementação futura.

    <nLinhaJanela> É o número da linha da janela na qual o item de menu inicial aparecerá.
    Retorna
    VTACHOICE() retorna a posição numérica ocupada pelo item de menu selecionado no vetor de <acItensMenu>. Se o
    processo de seleção for interrompido, VTACHOICE() retorna zero.
    Função de usuário: Da mesma forma que as demais funções de interface com o usuário, VTACHOICE() aceita
    uma função de usuário. A função de usuário é especificada quando você deseja aninhar invocações da função
    VTACHOICE() para criar menus hierárquicos ou redefinir teclas.
    Modos de VTACHOICE()
    0-Inativo
    1-Tentativa de passar início da lista
    2-Tentativa de passar final da lista
    3-Normal
    4-tens não selecionados
    Após a função de usuário ter executado as operações apropriadas ao modo VTACHOICE(), ela deve retornar um
    valor que solicite ao VTACHOICE() executar uma operação entre o seguinte conjunto de ações:
    Valores de Retorno da Função de Controle de VTACHOICE()
    0-Aborta seleção
    1-Executa seleção
    2-Continua VTACHOICE()
    3-Vai para o próximo item cuja primeira letra for a tecla pressionada
    Exemplo
    acMenuItens := {“Um”,”Dois”, "—–", “Tres”}
    alSelectableItens := {.T., .T., .F., .T.}
    nPosition := VTACHOICE(0, 0, 7, 19, acMenuItens, alSelectableItens,”TESTECTRL” )
    Function testectrl(modo,nElem,nElemW)
    If modo == 1
    VtAlert('Top')
    Elseif Modo == 2
    VtAlert('Bottom')
    Else
    If VTLastkey() == 27
    VtAlert('sair')
    VTBeep(3)
    return 0
    elseIf VTLastkey() == 13
    VtAlert('ok')
    VtBeep(1)
    return 1
    Endif
    EndIf
    Return 2