Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Componente Buscar y Mostrar mientras escribres (https://www.clubdelphi.com/foros/showthread.php?t=64977)

sysmar 12-11-2009 19:10:09

Componente Buscar y Mostrar mientras escribres
 
Hola Delphius,

Con la finalidad de hacer seleccion de registro mas amigable a los usuarios, busco un componente que me ayude a mostrar codigos de productos mientras el usuario escribe.

Tengo una tabla con mas de 8,500 productos. Para muchos procesos el usuario debe escribir la clave del producto en un TEdit posteriormente tiene que precionar ENTER (Intro) para que la aplicacion haga la busqueda del mismo.

En algunos programas he visto que mientras se escribe la clave se muestra una ventanita tipo ComboBox que se acerca a registros que comienzan las las letras capturadas.

Si alguien puede darme la idea de que debo utilizar o si Delphi 2007 ya cuenta con algun componente que pueda hacer esto, estare muy agradecido.

Actualmente utilizo TDBLookupComboBox, pero no he podido hacer lo descrito anteriormente.

Saludos

afunez2007 12-11-2009 19:25:13

Hay un componente de Jedi que se llama JvFindEdit, es exelente

mira este post y comprenderas lo que digo

http://www.clubdelphi.com/foros/show...96&postcount=4

Saludos

sysmar 12-11-2009 19:30:48

Gracias por la idea. Es una buena opcion para hacer busquedas y me sera de mucha utilidad para algunos procesos.

Mas sin embargo quiero descartar la posibilidad de que no haya algo igual pero desplegable en tipo Combo Box. Ya que la solucion que me enviaste la despliega en DBGrid.

Gracias

JosepGA 13-11-2009 09:08:40

hola,

no te sirve el DBCombobox ?

rgstuamigo 13-11-2009 15:46:31

Cita:

Empezado por sysmar (Mensaje 346375)
Hola Delphius,

Con la finalidad de hacer seleccion de registro mas amigable a los usuarios, busco un componente que me ayude a mostrar codigos de productos mientras el usuario escribe.

Tengo una tabla con mas de 8,500 productos. Para muchos procesos el usuario debe escribir la clave del producto en un TEdit posteriormente tiene que precionar ENTER (Intro) para que la aplicacion haga la busqueda del mismo.

En algunos programas he visto que mientras se escribe la clave se muestra una ventanita tipo ComboBox que se acerca a registros que comienzan las las letras capturadas.

Si alguien puede darme la idea de que debo utilizar o si Delphi 2007 ya cuenta con algun componente que pueda hacer esto, estare muy agradecido.

Actualmente utilizo TDBLookupComboBox, pero no he podido hacer lo descrito anteriormente.

Saludos

Eso se consigue configurando bien las propiedades ;), ya sea de un ComboBox ó DBComboBox; debes poner la propiedad AutoDropDown a True;) .
Tambien, si en algun caso solo quieres que se pueda seleccionar un item pero que no se permita escribir pues entonces chekea la propiedad Style y si quieres ordenarlos alfabeticamente pues pon la propiedad Sorted = True;).
Saludos...:)
[/b]

sisne 04-04-2010 23:34:31

Cita:

Empezado por afunez2007 (Mensaje 346384)
Hay un componente de Jedi que se llama JvFindEdit, es exelente

mira este post y comprenderas lo que digo

http://www.clubdelphi.com/foros/show...96&postcount=4

Saludos

Hola afunez2007. Encontré tu mjs y pues me parece muy bueno el link al cual enviaste y pues quisiera que por favor pudieras ayudarme, ya que tengo tablas con campos similares y tb debo realizar varias busquedas seleccionado "Buscar por..." y en un Tedit escribirla y mostrar en un DBGrid.

Gracias de anticipadamente
Mis tablas son Tuniversitario relacionadas con TMateria, Tbeca...usando SQL Server.

Gracias.

sisne 06-04-2010 00:45:04

Alguien podria aclararme esta situacion por favor?:o:(

Gracias

ecfisa 06-04-2010 03:24:32

Hola a todos.
No soy amigo de usar otros componentes cuando los que están en la paleta de delphi pueden hacerlo.

¿ Motivos ? Varios, pero el principal es que cuando se nos presenta un problema con el componente, la información no existe o es de difícil acceso. Y este es un punto fuerte en su contra.(Es mi humilde mi opinión...)

Como dijo rgstuamigo (y coincido plenamente) el DBComboBox se adapta perfectamente a esta situación.

Pero sospecho que la reticencia a usarlo no es por su funcionalidad si no por el aspecto que quieren darle al ingreso.

De todos modos si lo que se busca es usar un TEdit con busqueda incremental (nada eficiente) y que vaya mostrando resultados por aproximación; se puede hacer con los componentes que incluye delphi.


Ejemplo(muy simplificado):


.-Agregar un TEdit, un TIBQuery (o TQuery) un TDataSource y un TDBGrid.
.-Asociar el DBGrid al DataSource y este al IBQuery (o TQuery).
.- Poner la propiedad ReadOnly del DBGrid a True.
.-Asignar al evento OnChange del TEdit el siguiente código:


Código:

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Edit1.Text <> '' then
  with Qry do
  begin
      Close;
      SQL.Text:= 'SELECT NAME, CAPITAL FROM COUNTRY'+
                      ' WHERE NAME LIKE '+QuotedStr(Edit1.Text+'%');
      Open;
  end
end;


Y Voilà!... tenemos el famoso cuadro que nos va a mostrar los datos que comienzan con las letras tecleadas. (Quedan ajustar detalles como el CharCase del Edit, los títulos del DBGrid etc).


Saludos.

sisne 06-04-2010 10:11:25

Hola ecfisa!

Tienes toda la razon en tu argumento con los componentes.
Y si funciona full tu codigo, lo acomodé seleccionando un campo y de acuerdo a eso buscar. Bueno solo es cuestion de acomodarlo.
(Queria por la visualizacion:o).

MUUChisimas gracias!


La franja horaria es GMT +2. Ahora son las 06:53:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi