Navegação de gets usando gets comuns e com listbox
Moderador: Moderadores
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Navegação de gets usando gets comuns e com listbox
Bom dia amigos !
Alguem já usou entrada de dados com gets "normais" e com listbox. Quando o foco é passado para o @... get listbox, não consigo voltar ao get anterior. Normalmente, quando as entradas tem somente gets "normais", utilizo a seta para cima para voltar ao get anterior. O problema é que isso não funciona com listbox.
Antecipadamente agradeço a atenção de todos.
Abraços
Alguem já usou entrada de dados com gets "normais" e com listbox. Quando o foco é passado para o @... get listbox, não consigo voltar ao get anterior. Normalmente, quando as entradas tem somente gets "normais", utilizo a seta para cima para voltar ao get anterior. O problema é que isso não funciona com listbox.
Antecipadamente agradeço a atenção de todos.
Abraços
Listbox no Clipper? Isso eu até tenho, mas implementei no meu GETSYS. Não está confundindo com outro recurso?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Navegação de gets usando gets comuns e com listbox
Bom dia Maligno !
Acho que não. No Clipper 5.3 existe esse argumento:
@ li,ci,lf,cf get var listbox{´SP´,´RJ´,´ES´} caption... message... etc...
Acho que não. No Clipper 5.3 existe esse argumento:
@ li,ci,lf,cf get var listbox{´SP´,´RJ´,´ES´} caption... message... etc...
Ah, sim. Agora tá explicado. Esqueci que o 5.3 tem alguns recursos a mais. Eu uso a versão 5.2. M desculpe, mas vou ficar devendo essa. 
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Navegação de gets usando gets comuns e com listbox
Este listbox tem um argumento chamado State que executa determinada função após a confirmação do get com Enter. Só que aceita somente Code Blocks tipo:
@... get listbox{´sp´,´rj´} State { || ReadExit( .F. ) }
Em vez de desativar o ReadExit como no exemplo acima, eu queria uma função que retornasse ao get anterior.
@... get listbox{´sp´,´rj´} State { || ReadExit( .F. ) }
Em vez de desativar o ReadExit como no exemplo acima, eu queria uma função que retornasse ao get anterior.
Tentou ler algum fonte dos exemplos que acompanham o Clipper?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Navegação de gets usando gets comuns e com listbox
Eu até dei uma olhada no getsys.prg mas não clareou nada. Na verdade, no meu programa, até consigo voltar nos gets usando Page UP e Page Down. Mas queria que voltasse tbm com a seta pra cima. O problema é que a navegação do listbox é feita justamente com ela. Atraves do Page Up e Page Down eu consigo voltar, mas não para o get anterior e sim para o primeiro da lista. O que eu preciso é de uma função que retorne a edição para o get situado na posição anterior a atual.
Quando fiz o meu listBox no Clipper, resolvi isso usando a barra de espaço para abrir o listBox. Nesta condição as setas servem para navegar pela lista. Ao escolher um ítem com Enter, a lista se retrai e as setas passam a servir para navegar pela lista de GETs. Esse listBox não tem um comportamento parecido com o que eu descrevi?Ademir escreveu:Mas queria que voltasse tbm com a seta pra cima. O problema é que a navegação do listbox é feita justamente com ela.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Navegação de gets usando gets comuns e com listbox
Exatamente isso. Vc tecla espaço, abre a lista de opções, escolhe uma com enter e pronto. O problema é que quando a lista se retrai, teclando as setas as opções do listbox ficam "rolando", sendo monstradas uma a uma.
E isso pelo visto é padrão dele. Alem disso, precisava se possivel, alterar o box da lista. Em vez de double line, queria usar single line.
E isso pelo visto é padrão dele. Alem disso, precisava se possivel, alterar o box da lista. Em vez de double line, queria usar single line.
Re: Navegação de gets usando gets comuns e com listbox
Ademir, as vezes é melhor agente criar nosso próprio listbox do que conseguir alterar um existente para implementar nossas necessidades. Acho até mais fácil vc criar uma função simples com o uso de ACHOICE que exiba uma lista de opções e usar esta função através da cláusula VALID do comando GET. Assim vc configura o uso das teclas de acordo com o que quer fazer. Eu particularmente uso o clipper 5.2e não conheço os recursos extras da versão 5.3 por isso sempre que precisei bolei algo parecido.
Ate+
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Ah, sim. Captei. É justamente essa partezinha que o meu listBox não tem. E não implementei assim (é padrão em Windows GUI), exatamente para evitar esse problema com as setas.Ademir escreveu:O problema é que quando a lista se retrai, teclando as setas as opções do listbox ficam "rolando", sendo monstradas uma a uma.
Aí fica realmente difícil. Não sei dizer se no 5.3 tem como alterar esse comportamento.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Navegação de gets usando gets comuns e com listbox
Então meu caro Maligno, como resolverei este problema ?
Esse @ ... get listbox é bem legal. Economiza codigo pacas e visualmente fica muito bom. Ele tem um argumento chamado Focus onde vc pode alterar algumas configurações. Sempre que o get recebe o foco, as instruçoes de dentro do code block são executadas. O problema é que não tenho muito experiencia em code blocks, classes, metodos, etc...
Sei por exemplo que:
para alterar o box de double para single a sintaxe é ListBox:hotBox := B_SINGLE
ListBox:hasFocus é .T. se o get recebeu o foco
A sintaxe do argumento Focus é: Focus { || <funçao> }
Com tudo isso, será que vc saberia me dizer mais alguma coisa ?
Esse @ ... get listbox é bem legal. Economiza codigo pacas e visualmente fica muito bom. Ele tem um argumento chamado Focus onde vc pode alterar algumas configurações. Sempre que o get recebe o foco, as instruçoes de dentro do code block são executadas. O problema é que não tenho muito experiencia em code blocks, classes, metodos, etc...
Sei por exemplo que:
para alterar o box de double para single a sintaxe é ListBox:hotBox := B_SINGLE
ListBox:hasFocus é .T. se o get recebeu o foco
A sintaxe do argumento Focus é: Focus { || <funçao> }
Com tudo isso, será que vc saberia me dizer mais alguma coisa ?
Partindo do princípio de que (eu acho que) o listBox, sem ter a lista ativada, age como um campo qualquer, reagindo normalmente às setas, e que estas, por sua vez, "perdem" o sentido ao ter a lista ativada uma vez, pergunto: não seria possível, ao pressionar o Enter para a seleção do ítem, você mandar para o buffer do teclado um outro Enter para que o campo seguinte seja focalizado? Não seria possível "brincar" com o buffer do teclado desta forma, para resolver o problema? É uma alternativa. Gambiarra sim, claro. Mas poderia funcionar.
Uma outra alternativa seria alterar o GETSYS para modificar esse comportamento padrão. Mas aí já não é minha área. Uma única vez na vida (há uns 10 anos) instalei a versão 5.3. Não tenha a menor intimidade com as diferenças desta versão.
Uma outra alternativa seria alterar o GETSYS para modificar esse comportamento padrão. Mas aí já não é minha área. Uma única vez na vida (há uns 10 anos) instalei a versão 5.3. Não tenha a menor intimidade com as diferenças desta versão.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Re: Navegação de gets usando gets comuns e com listbox
Eu também como não uso o 5.3, faço minha propria rotina.
O que eu tenho a comentar que é prefirível fazé-la no GETSYS e não utilizar o ACHOICE. A função de controle do achoice permitiria fazer com que seja visto se o elemento for primeiro ou ultimo e a tecla pra cima ou pra baixo for pressionada, saia do ACHOICE. Mas fica dificil controlar a posição certa do get conforme se for pra cima ou pra baixo. Por isso sou da idéia criar em looping esse controle mas dentro do GETSYS, daí o focus do GET fica certinho.
O que eu tenho a comentar que é prefirível fazé-la no GETSYS e não utilizar o ACHOICE. A função de controle do achoice permitiria fazer com que seja visto se o elemento for primeiro ou ultimo e a tecla pra cima ou pra baixo for pressionada, saia do ACHOICE. Mas fica dificil controlar a posição certa do get conforme se for pra cima ou pra baixo. Por isso sou da idéia criar em looping esse controle mas dentro do GETSYS, daí o focus do GET fica certinho.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Navegação de gets usando gets comuns e com listbox
Bom dia amigos clipeiros !
Pensando melhor, acho que seguirei o conselho dos Srs. e resolverei o problema mesmo com o achoice, mesmo porque, tenho urgencia na conclusão do sistema. Mesmo assim, agradeço a atenção de todos. Abraços...
Pensando melhor, acho que seguirei o conselho dos Srs. e resolverei o problema mesmo com o achoice, mesmo porque, tenho urgencia na conclusão do sistema. Mesmo assim, agradeço a atenção de todos. Abraços...

