Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
dblookupcombobox1 y edit

Hola. Estoy intentando hacer una busqueda con un edit y un dblookupcombobox1 pero no me funciona bien.
Lo estoy haciendo con el evento onkeypress en el edit para que me fuera buscando con el locate en el lookup, pero solo me lo encuentra si escribo todo el texto que esta registrado en la tabla.

Queria que cada vez que escribiera una letra en el edit se posicionara en el lookup sobre esa letra y a medida que escribiera mas letras la busqueda fuera mas completa.

gracias
Responder Con Cita
  #2  
Antiguo 01-07-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
ayer postee un solución parecida creo que te puede servir:

http://www.clubdelphi.com/foros/showthread.php?p=211461
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 01-07-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Se agradece, pero no se como usar ese algoritmo en un dblookupcombobox, si es un listbox si porque lo compara rastreando el listbox.
Estuve mirando sobre los comodines pero no funcionan, es decir, usando el locate, con el edit1.text cuando el edit1.text es p* y el resto que buscara la primera letra que empiece por p y el resto lo pone el mismo.

alguna idea

gracias
Responder Con Cita
  #4  
Antiguo 01-07-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
mira, lo que hace ese algoritmo es inicializar el itemIndex en -1 simular que escribes todo el texto y nada más, solo hay que hacer una variante como esta, espero os resulte:

Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var
  i : integer;
begin
  dblookup.keyvalue := null;
  for i:= 1 to length(edit1.text) do
     SendMessage(dblookup.Handle, WM_CHAR, integer(edit1.text[i]), 0);
end;
__________________
self.free;
Responder Con Cita
  #5  
Antiguo 01-07-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
en el OnKeyPress de tu edit
Código Delphi [-]
      DBLookUPComboBoxq.ListSource.Filter:='CAMPO LIKE '''+edit1.text+'%''';
      DBLookUPComboBoxq.ListSource.Filtered:=True;

Última edición por courtois fecha: 01-07-2007 a las 08:30:21.
Responder Con Cita
  #6  
Antiguo 01-07-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
se agradece a los dos.
Droguerman: Funciona hasta cierto punto tu algoritmo, a veces localiza el nombre y a veces no.

courtois: en el dblookupcombobox no aparece el filter ni el filtered.
Responder Con Cita
  #7  
Antiguo 01-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por anubis
en el dblookupcombobox no aparece el filter ni el filtered.
Prueba esto

Código Delphi [-]
TDataset(DBLookupComboBox1.ListSource).Filter
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 01-07-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
estoy probando esto:
Código Delphi [-]
datacliha.tpersonas(buscapersonas.ListSource).Filter:='Nombre LIKE '''+edit1.text+'%''';
     datacliha.tpersonas(buscapersonas.ListSource).Filtered:=True;

donde datacliha es el datasource y el tpersonas es el tdataset, pero me da error en ambas 'missing operator o semicolon'
Responder Con Cita
  #9  
Antiguo 02-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
No se que tan valida sera tu forma pero a mi me gusta mas esto:

Código Delphi [-]
TDataset(buscapersonas.ListSource).Filter:='Nombre LIKE ' + QuotedStr(edit1.text + '%');
TDataset(buscapersonas.ListSource).Filtered:=True;

Creo que es la forma correcta del cast, porq anteriormente casteabas a un objeto no a una clase como deberia ser,

pero es mi humilde opinion no se si estare en lo cierto
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #10  
Antiguo 03-07-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
No hombre, mi metodo no es valido simplemente que asi no me funcionaba con el tdataset, cosa que probe otra vez pero me dice que tdataset no esta declarado.
No se como se puede declarar el tdataset la verdad o como va, si me puedes orientar por que no me funciona asi como dices porque seguro me falta alguna cosa de poner.
Como digo tengo el datasource y el ttable no puse mas

gracias y perdona
Responder Con Cita
  #11  
Antiguo 03-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Agrega en el uses la unidad db
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #12  
Antiguo 04-07-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias. Nose porque tengo problema en tiempo de ejecucion con esto:
Código Delphi [-]
procedure Tfconcliente.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
TDataset(buscapersona.ListSource).Filter:='Nombre LIKE '''+edit1.text+'%''';
TDataset(buscapersona.ListSource).Filtered:=True;procedure

el aviso que me sale es violacion de memoria. No se si esto es tan dificil hacer una busqueda cada vez escribiendo una letra que lo buscara. El remedio quiza sea meter la tabla en un combobox.

gracias
Responder Con Cita
  #13  
Antiguo 04-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Acces Violation es problema que no se ha creado el componente, sera que el datasource que le estas asinado al combo no es un dataset o no tiene la propiedad filter????

no se me ocurre que otra cosa puede dar el acces violation, estas seguro que es en esa linea???
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Unir Edit con Edit Caral Varios 8 17-11-2006 21:37:35
Problema para entrar datos con DBLookupComboBox1 Fat Conexión con bases de datos 9 03-07-2006 23:31:13
DBLookupComboBox1.Perform Johnny Q OOP 5 15-07-2005 22:14:08
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 15:46:39
ayuda con DBLookupComboBox1 por fa... ronimaxh Varios 0 27-01-2004 17:42:17


La franja horaria es GMT +2. Ahora son las 06:31:27.


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
Copyright 1996-2007 Club Delphi