Página 1 de 1
Modificação na função Achoice, preciso do fonte.
Enviado: 05 Ago 2010 17:12
por ANDRIL
Amigos, percebi que quando se constroi um menu com achoice e ao escolher uma opção deste menu, abrindo uma nova escolha (sem apagar o menu anterior), a opção escolhida anteriormente não fica selecionada, fazendo com que nao saibamos qual caminho percorrido ate o menu atual.
Eu não tenho o Achoice.prg que vem com o Clpper52e, precisava do fonte para tentar alterar este procedimento, quando teclar ENTER a opcao escolhida fique destacada, pois desconfio que tem um restore screen ai no meio.
Se alguem tiver alguma dica ou o arquivo, agradeço desde já.
Ate+
Re: Modificação na função Achoice, preciso do fonte.
Enviado: 05 Ago 2010 17:45
por alxsts
Olá!
A AChoice() aceita um parâmetro que especifica o item inicial. Coloque a função dentro de um loop e a cada iteração ajuste o item inicial para o último selecionado. No NG tem exemplo fazendo isso.
Re: Modificação na função Achoice, preciso do fonte.
Enviado: 05 Ago 2010 18:02
por Toledo
Veja este exemplo do link abaixo:
Menu utilizando Achoice
Abraços,
Re: Modificação na função Achoice, preciso do fonte.
Enviado: 05 Ago 2010 18:30
por ANDRIL
Alxsts, ja utilizo este tecnica da posicao inicial no Achoice. O meu problema não esta ao iniciar o Achoice, o problema mesmo acontece é dentro da função de controle. Quando se tecla ENTER o qual retorna RETURN 1 (selecionado) o Achoice é encerrado, pois dai em diante, o nosso sistema já tem a opção que o usuário escolheu.
Veja esse exemplo:
Código: Selecionar todos
tela1:=savescreen(10,20,15,40)
priv ar1:={"Primeira opcao","Segunda opcao"},a2:={.t.,.t.}
sub1:=0;sub2:=0
sub1=achoice(10,20,15,40,ar1,ar2,"minhafuncao",sub1,"")
if sub1=1
*--quando teclo enter no achoice acima na primeira opcao
*--o achoice é terminado e vem para este novo achoice,
*--porem, o achoice anterior, nao fica com a 1a opcao
*--selecionada, para saber que este novo achoice se originou da
*--1a opcao, fica apenas as opcoes na tela, sem nenhuma tarja
*--É como se ao teclar ENTER para selecionar, a funcao achoice
*--restaurasse a tela no quadrado do proprio achoice usando as
*--coordenadas que passamos na propria funcao.
sub2=achoice(16,20,18,40,ar3,ar4,"minhafuncao2",sub2,"")
elseif sub1=2
endif
Toledo Já baixei o arquivo, vou verificar, obrigado.
Anexei o arquivo de imagem contendo o problema, esta como TXT pq nao aceita a extensão JPG, tem que renomea-lo.
Ate+
Re: Modificação na função Achoice, preciso do fonte.
Enviado: 06 Ago 2010 00:31
por alxsts
Olá!
Caro Andril:
não sei se entendi a tua necessidade mas, a intenção é ajudar, sempre.
Nunca soube que o fonte da função AChoice() veio junto com o Clipper 5.2e, como você escreveu. Creio que você tenha se enganado.
Para construir menus, prefiro utilizar outros recursos da linguagem ou mesmo de terceiros. Pelo que entendi, o teu menu tem vários níveis de hierarquia. É difícil fazer isto com AChoice() pois a função trabalha apenas com arrays unidimensionais. Teria que fazer um aninhamento de arrays e tratar tudo isso...