Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-03-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Hola Caral!! como andas!

Claro yo quiero hacer algo como la imagen que puse, lo que quiero es que a medida que escribo en el Tedit abajo me vayan apareciendo las opciones en forma de una lista desplegable para luego seleccionarla.

La duda seria en como trabajar esa lista? Tengo que utilizar un ListBox?

Código SQL [-]
  with QueryDataModule.CiudadZQuery do
                 begin
                     If active then close;
                     SQL.Clear;
                     Sql.Add('Select * from ciudad where ciudad.Ciudad like '''+CiudadEdit.Text+'%''');
                     Open;
                     Active:=True;
                 end;

Esa es la consulta del Tedit que tengo en el evento onchange, como hago para llenar la lista obteniendo los valores de esta consulta?

No se si ahora se entiende mejor o peor jaja. Si ven la imagen que puse ahí se van a dar cuenta de lo que quiero hacer.

Gracias Caral!!!
Responder Con Cita
  #2  
Antiguo 13-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
   QueryDataModule.CiudadZQuery.Sql.Text:= 'Select * from ciudad where ciudad.Ciudad like '''+CiudadEdit.Text+'%''';
   QueryDataModule.CiudadZQuery.Open;
   While not QueryDataModule.CiudadZQuery.Eof do
   begin
   ListBox1.Items.Add(QueryDataModule.CiudadZQuery.Fields[0].Text);
   QueryDataModule.CiudadZQuery.Next;
   end;
   QueryDataModule.CiudadZQuery := False;
   end;
Fields[0] seria el primer campo de la tabla, se tiene que poner el campo correcto (0,1,2 etc....), o en tal caso el nombre con FileByName.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 13-03-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Caral gracias por ayudar!!!!

Probé el código que me pusiste, el problema es me llena toda la lista pero sin patrones. Osea en el Tedit pongo la letra B y en vez de ir apareciendo las ciudad a medida que escribo ya me pone ejemplo Bahia Blanca entre otras. Se entiende lo que quiero decir?

Lo que probé ahora es con un dbgrig, como menciono Newtron, funciona bien, lo que no se si es conveniente usar este método o sigo probando con la lista?


Gracias Caral por ayudar!!
Responder Con Cita
  #4  
Antiguo 13-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Para que vallan apareciendo se necesita filtrar, no se si zeos, en el query lo hace.
Es logico que salgan todas las coincidencias, es sql, no va filtrando, define y coloca todo.
No le veo inconveniente al dbgrid, en principio pense que era lo mejor, pero pediste un listbox.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 14-03-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Bueno Caral, estuve trabajando con esto y quedo bastante bien, toque todos los eventos para que el dbgrig simule ser una lista que se despliega.

Lo que estoy tratando de hacer es que, mientras escribo en el TEdit pueda ir recorriendo el dbgrid con las fechas del cursor ˇ ˆ sin necesidad de hacer click en el para tomar el foco. Se podrá??

Gracias por la paciencia!!!
Responder Con Cita
  #6  
Antiguo 14-03-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Pues si que se puede, yo lo tengo así. Yo en vez de un edit lo que realmente tengo es un label. Lo que tienes que hacer es capturar es el keydown del grid y si es una tecla de cursor no hacer nada y si es otra añadirla al caption del label.

Espero que te sirva.

Saludos
Responder Con Cita
  #7  
Antiguo 14-03-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Hola Newton, acá ya lo tengo medio cocinado, puedo subir y bajar sin salir del TEdit, lo que estoy tratando de hacer es dejarlo seleccionado con la tecla enter, y que se ponga solo en el Tedit.

Este es mi código:


Código Delphi [-]
procedure TAltasForm.CiudadEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin




             if Key = VK_DOWN then
                begin
                   QueryDataModule.CiudadZQuery.Next;
                   marca:=DBGrid1.DataSource.DataSet.GetBookmark;
                end;

             if Key = VK_UP then
                begin
                   QueryDataModule.CiudadZQuery.Prior;
                   marca:=DBGrid1.DataSource.DataSet.GetBookmark;
                end;
end;

procedure TAltasForm.CiudadEditKeyPress(Sender: TObject; var Key: Char);
begin


             DBGrid1.Visible:=True;
             DireccionLabel.Visible:=False;
             EmailLabel.Visible:=False;

             with QueryDataModule.CiudadZQuery do
                 begin
                     If active then close;
                     SQL.Clear;
                     Sql.Add('Select *  from ciudad where ciudad.Ciudad like '''+CiudadEdit.Text+'%'' and ciudad.ID_provincia=ro');
                     ParamByName('pro').AsAnsiString:=ProvinciaDBLookupComboBox.KeyValue;
                     Open;
                     Active:=True;
                 end;

             if QueryDataModule.CiudadZQuery.IsEmpty then
               begin
                ShowMessage('No hay Resultados');
                DBGrid1.Visible:=False;
                CiudadEdit.Clear;
               end;




               If Key = #13 Then
               begin

                  DBGrid1.Visible:=False;
                  DBGrid1.DataSource.DataSet.GotoBookmark(marca);
                  CiudadEdit.Text:=QueryDataModule.CiudadZQuery.FieldByName('Ciudad').Text;
                  EmailLabel.Visible:=True;
               end;




end;


Como se ve hasta he tratado con los Bookmark pero nada.

Alguna sugerencia?? Desde ya muchas GRACIAS!!
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
Como puedo hacer que un TEdit se vea asì?. Alejo15x Varios 4 22-02-2010 00:36:34
Hacer evento Tab en TEdit JELIRM Varios 17 19-06-2008 19:06:34
combobox y autocomplete !!!!!!!!!!!!!!!!!! david_uh Varios 15 19-07-2007 00:58:44
¿Como hacer una Consulta en el Onchange de un TEdit? day_eli Conexión con bases de datos 8 28-01-2007 03:06:53
PickList con AutoComplete en DBGrid Delfino Conexión con bases de datos 2 13-10-2003 20:52:41


La franja horaria es GMT +2. Ahora son las 22:38:58.


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