Página 2 de 2

Enviado: 08 Ago 2007 07:44
por ederxc
Ha , ja ia me esquecendo , ninguem tem nada sobre esse browseseek() , pelo que vi no link abaixo me parece fazer parte de uma Lib alienigena

link direto :

http://www.shopdosalarmes.com.br/fofao/ ... se.htm#072



link home do site:

http://www.shopdosalarmes.com.br/fofao/ ... browse.htm :f

Enviado: 09 Ago 2007 08:08
por ederxc
Pessoal , andei baixando as fontes que os amigos diponibilizaram e alguns "demos" para criar minha rotina letra-a-letra , pois bem consegui cria-la de forma que me agradasse , mas no meio do caminho deparei com um erro que tambem acompanha os demos ja compilasdos .....

...Seguinte ...


quando se esta digitando os caracteres para a pesquisa , beleza mas a partir do momento que voce digita digamos "m " o ponteiro do DBF vai para o primeiro "m" que ele encontra, digamos que dai para frente eu pare de digitar e va usando as "setas" para baixo para selecionar manualmente o registro ; Agora o problema , caso eu apague a letra "M" e tecle algum caracter que venha antes dessa letra na ordem alfabética exemplo "L" , o ponteiro se perde , a pesquisa só pode ser continuada a partir da letra "M" pois o ponteiro esta nela, Ok tudo bem intendo que "se ja estou no meio do caminha ñ tem como pesquisar o que ja ficou para traz " mas gostaria de saber se tem como ao "zerar" a variavel de pesquisa fazer o ponteiro ir para GO top ate tentei este duas formas de se fazer ...

Código: Selecionar todos

if empty(pesq)
   alert("esta vazia")  //Apenas para checar se realmente esta vazia!
   brw:hittop()  
endif

outra tentativa   

if empty(pesq)
   go top 
endif

Falei pra caramba , só ñ sei se alguem vai compriender o erro ! dãaa ãa :%

Enviado: 09 Ago 2007 08:13
por Eolo
Cara, quando vc teclar algo que não é parte da pesquisa (setas, enter etc), ZERE a variável PESQ e não faça o SEEK.

Enviado: 09 Ago 2007 08:28
por Maligno
Nada a ver, mas apenas para complementar essa questão de "pesquisa". Uma coisa que meus clientes adoraram foi quando passei a oferecer uma pesquisa com a função sx_WildSeek(), permitindo a busca por nomes parciais. Abro uma caixa de diálogo e o cliente digita um nome qualquer. O sistema busca o primeiro. Encontrando, basta digitar * para buscar o próximo. Não existindo mais nenhum, solto um beep. É uma mão na roda. Ajuda muito quando não se consegue lembrar o início do nome, mas apenas uma parte dele.

Enviado: 09 Ago 2007 08:52
por ederxc
Valeu pela dica maligno, mas quanto ao ponteiro se perder ainda continuo com o problema , pois mesmo fazendo o que o Vô indicou ñ funciona ja havia feito isso com o bakspace conforme vai teclando bakspace vai tirando "1" caracter da variavel de pesquisa e para confirmar se ela realmente estava vazia fiz como citei ha cima com o if empty(pesq) , alert("variavel vazia") ou seja, mesmo eu esvaziando a variavel , sem fazer um "go top " ñ adianta voltar a digitar que o ponteiro ainda continua perdido ...


´o)

Enviado: 09 Ago 2007 09:22
por Stanis Luksys
ederxc escreveu:quando se esta digitando os caracteres para a pesquisa , beleza mas a partir do momento que voce digita digamos "m " o ponteiro do DBF vai para o primeiro "m" que ele encontra, digamos que dai para frente eu pare de digitar e va usando as "setas" para baixo para selecionar manualmente o registro ; Agora o problema , caso eu apague a letra "M" e tecle algum caracter que venha antes dessa letra na ordem alfabética exemplo "L" , o ponteiro se perde
No exemplo que eu dei não acontece isso. Inclusive é uma função mais genérica, que em casos mais comuns nem precisaria ser alterada para ser usada com qualquer outro programa.

Falou!

Enviado: 09 Ago 2007 09:36
por ederxc
Stanis Luksys escreveu: No exemplo que eu dei não acontece isso.

Me descupe stanis , mais acontece sim , tente pesquisar qualquer coisa depois mova o ponteiro do dbf com as setas , depois apegue a variavel de pesquisa com o bakspece e tente pesquisar qualquer coisa que esteja acima do ponteiro , vera que o ponteiro ñ se move ... se alguem mais quiser fazer o teste só baixar o "exemplo.exe " do stanis e tbm tenho um outro aqui que é da própria area de download do site ...
se quiserem ver posto aqui....

OBS1: "apegue o que foi digitado somente depois de usar as seta , só assim notara o problema"

OBS2: Este "erro" ja esta no executavel , ñ foi eu quem criou , acho que voces não estão compriendendo o "erro"


té +++ , forte abraço que agora vou comer um pão , mó fome ae !




:xau

Enviado: 09 Ago 2007 09:45
por Stanis Luksys
É... entendi.

Então vai ver que acontece mesmo. Eu disse que não porque nunca ninguem reclamou, e já uso essa rotina no meus sistemas faz tempo. Inclusive bastante gente baixou também (tomara que eles já tenham corrigido :-p).

Sabe o que você pode fazer? Lá no meu prg, encontre os cases das respectivas teclas e ajuste, zere também a variável da pesquisa. De repente você dando um dbGoTop() antes da pesquisa também pode resolver.

O ideal talvez fosse jogar o valor do campo selecionado com a tecla lá em cima no campo de pesquisa, e atribuir seu valor a variavel. Assim o ponteiro não se perderia. Entendeu?

Faça alguns testes, eu não posso agora, mas assim que eu puder eu arrumo isso.

Valeu por achar o bug!

Enviado: 09 Ago 2007 09:54
por ederxc
Valeu stanis, vou continuar tentando aqui a unica solução seria dar um go top mesmo...

Enviado: 09 Ago 2007 12:05
por Eolo
pois mesmo fazendo o que o Vô indicou ñ funciona
Cara, se vc usou o modelo que eu lhe mandei - a minha função edita() - funciona, sim, 101% certo. Se não está funcionando, é pq vc copiou alguma coisa errada. Olhe o edita() com atenção! Como lhe falei, tem que fazer um GOTOP antes do SEEK...

Agora, como vc está usando outro modelo, precisa checar quem lhe passou ele.

Enviado: 10 Ago 2007 09:03
por ederxc
:)) Ok pessoal resolvido o problema do "Tbronha" letra-a-letra


Resolvi dando um brw:gotop()

Estava fazendo brw:hittop() //Não ia dar certo mesmo


té+++

Enviado: 16 Ago 2007 16:24
por ederxc
Esqueci de responder , deu certo , me basiei na rotina que o stanis postou e corrigi aquele bug que havia comentado acima ! Valeu moçada ... :*