FoxPro/Visual FoxPro - Buscar

 
Vista:

Buscar

Publicado por Gregory (187 intervenciones) el 16/02/2006 22:30:47
Hola amigos de la web .
Mi consulta es que si se puede crear en vfp un buscador interactivo, pero no con un textbox y una lista como comunmente se suele hacer, lo que me gustaria saber es que si se puede hacer una busqueda interactiva en el propio textbox es decir que a medida que uno escribe en el textbox este se llene con las posibles palabras buscadas, como por ejemplo en microsoft word cuando quiero abrir un archivo escribo el nombre del archivo y me llena el textbox con las posibles respuestas.
les agradezco de antemano sus respuestas.
atte Gregory
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Buscar

Publicado por Alexander (31 intervenciones) el 17/02/2006 00:24:38
Si te refieres a texto predictivo como los celu... creo que no seria muy complicado, es una buena idea, la aplicare. Creo q tan algo asi seria: en el metdo interectivo ejecutas la funcion que busca en alguna tabla las palabras que empiezan con esas letras y sin mover el puntero colocas las letras restantes. Luego en el mismo metodo pones una condicion; que si seguis escribiendo te siga ejecutando esas anterior funcion o si por ejemplo oprimis la tecla direccional derecha deje ese texto.
Vere si me sale y lo levanto aqui.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar

Publicado por Alexander (31 intervenciones) el 21/02/2006 22:48:40
*_________________________Explicación____________________________________
* La idea de este Código es hacer una 'especie' de busqueda
* predictivo.
* Utilizando un Seek() se consige la busqueda,pero se complica
* a la hora de seleccionar el texto que continua la frase (Por eso el
* Bucle 'IF THISFORM.CONTROL=.F.').
* El bucle 'IF (LASTKEY()=7)or(LASTKEY()=127)' controla que no se ejecute
* la busqueda y seleccion cuando se oprime las teclas 'Supr y Del'
* Aqui se utiliza una grilla y una tabla, pero bien puede ser un
* archivo de texto u otro
* Dos variables o propiedades nuevas agregale al form
* (control=0 y contador=.f.) , 1 textbox y una grilla con la
* propiedad 'HighlightStyle=2'
*______________________ Código del InteractiveChange_____________________
IF EMPTY(this.Value)
thisform.contador=0
endif
IF (LASTKEY()=7)or(LASTKEY()=127)
IF LASTKEY()=127
thisform.contador=LEN(ALLTRIM(this.Value))
ENDIF
ELSE
IF thisform.control=.f.
thisform.contador=thisform.contador+1
thisform.control=.t.
*_______=SEEK(alltrim(LO QUE BUSCAS),'EN LA TABLA',ALLTRIM('MEDIANTE EL INDICE'))
=SEEK(alltrim(this.value),'articulos',ALLTRIM('caarticulo'))
thisform.basegrid1.Refresh
this.value=ALLTRIM(this.value)+(RIGHT(alltrim(articulos.articulo), LEN(alltrim(articulos.articulo))-LEN(alltrim(this.value))))
this.HideSelection= .T.
thisform.LockScreen= .T.
this.SelStart = thisform.contador
this.SelLength = LEN(ALLTRIM(this.Value))
this.HideSelection= .f.
thisform.LockScreen= .f.
ELSE
thisform.contador=thisform.contador+1
thisform.control=.f.
*_______=SEEK(alltrim(LO QUE BUSCAS),'EN LA TABLA',ALLTRIM('MEDIANTE EL INDICE'))
=SEEK(alltrim(this.value),'articulos',ALLTRIM('caarticulo'))
thisform.basegrid1.Refresh
this.value=ALLTRIM(this.value)+(RIGHT(alltrim(articulos.articulo), LEN(alltrim(articulos.articulo))-LEN(alltrim(this.value))))
this.HideSelection= .T.
thisform.LockScreen= .T.
this.SelStart = thisform.contador
this.SelLength = LEN(ALLTRIM(this.Value))
this.HideSelection= .f.
thisform.LockScreen= .f.
ENDIF
ENDIF

*___________________________Código del Keypres_________________________
* En este caso con ENTER se incluye en el textbox el texto seleccionado
* Quedaria Mejor con nkeycode=4 'Flecha Derecha', pero = funciona
IF nkeycode=13
this.HideSelection= .T.
thisform.LockScreen= .T.
this.SelStart = 0
this.SelLength = 0
this.HideSelection= .f.
thisform.LockScreen= .f.
ENDIF
** Si alguien tiene una manera mas sencilla de hacer esto, favor de
** compartirlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar