Comando Achoice

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

negrao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 06 Jul 2004 08:38

Comando Achoice

Mensagem por negrao »

Mocada, estou usando o achoice para marcar algumas opcoes, mas sempre que escolho algo volta pro inicio da Lista.Nao teria como apos escolher continuar a mesma posicao ?
Abaixo estou passando como esta meu comando.
A ideia seria no achoice ao dar o SPACE selecionar o que desejo.
Obrigado

Código: Selecionar todos

//=============================================================================
static FUNCTION teste()
    LOCAL CTELA := SAVESCREEN() , alista , npos , nrow := 0

   alista := {}
   aadd(alista,'  ³Geral              ')
   aadd(alista,'  ³Entrada Nota       ')
   aadd(alista,'  ³Outras Entrada     ')
   aadd(alista,'  ³Devolu‡„o          ')
   aadd(alista,'  ³Entrada Condicional')
   aadd(alista,'  ³Sa¡da Nota         ')
   aadd(alista,'  ³Outras Sa¡das      ')
   aadd(alista,'  ³Vendas             ')
   aadd(alista,'  ³Sa¡da Condicional  ')

   Relevo(10,36,21,59)
   @ 20,37 say "   <SPACE> Seleciona  " color "w+/n"
   WHILE .T.
      nvar := ACHOICE(11,37,19,58,alista,.t.,"AC_BAIXA",NPOS,NROW)
      IF LASTKEY() == 27
         EXIT
      ELSEIF LASTKEY() == 13
         exit
      ELSEIF LASTKEY() == 32
         if subs(alista[nvar],1,1) == 'x'
             alista[nvar] := ' '+subs(alista[nvar],2)
         else
             alista[nvar] := 'x'+subs(alista[nvar],2)
             XC++
         endif
      ENDIF
   ENDDO
   RESTSCREEN(00,00,24,79,ctela)
RETURN .t.

/****************************************************************************/
FUNCTION AC_BAIXA(MODO,ELE,ROW)
    NROW := ROW
    DO CASE
      CASE MODO == 1
	KEYBOARD CHR(30)
      CASE MODO == 2
	KEYBOARD CHR(31)
      CASE MODO == 3
	DO CASE
	   CASE LASTKEY() == 027 //ESC
	      RETURN (0)
           CASE LASTKEY() == 013 //enter
	      RETURN (1)
           CASE LASTKEY() == 032 //SPACO
	      RETURN (1)
	ENDCASE
    Endcase
RETURN (2)


---
Nota da Moderação (Maligno):
A presente mensagem teve de ser editada para a inclusão das tags de indentação de código. Por favor, futuramente, não deixe de usar essas tags. Ler o código alheio já é tarefa difícil. Muito mais difícil fica sem a devida indentação.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Comando Achoice

Mensagem por Toledo »

Amigo, coloque o comando abaixo logo após a linha onde está a ACHOICE():

Código: Selecionar todos

NPOS:=nvar
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder