Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Problema con ComboBox

Resulta que tengo una base de datos access, donde tengo almacenado muchos nombres, y para hacer la selección de los nombres, se me ocurrió poner un ComboBox, style csDropDown para que me permita escribir como si fuera un TEdit, y asi poder filtrarlos según con que letra empiecen, y que se me carguen estos filtrados como items. Por ejemplo, si escribo la letra "L", el ComboBox se me rellena con todos los nombres que empiecen con la letra "L", asi:

Código Delphi [-]
procedure TMiagenda.ComboBox6Change(Sender: TObject);
var nombre:string;
     i:integer;
begin
  //por las dudas lo vacío, sino me acumula los filtros
  ComboBox6.Items.Clear;
  nombre:=ComboBox6.Text;
 if (nombre<>'')
  then begin
      ComboBox6.Items.Clear;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('select * from amigos where nombre like '''+ComboBox6.Text+'%''');
      ADOQuery1.ExecSQL;  
      ADOQuery1.Open;
  //relleno los items con lo que se encontró
      for i:=0 to ADOQuery1.RecordCount-1 do
         begin
           ComboBox6.Items.Add(ADOQuery1.FieldByName('nombre').AsString);
         ADOQuery1.Next;
      end;
  end
  else begin
  //no encontró nada pues, la entrada esta vacia 
  ComboBox6.Items.Clear;
  end;
end;

Pero me pasan algunas cosas que no se como solucionar:

- Cuando escribo algo, si es solo la primera letra, el ComboBox se rellena bien, con todos los nombres que empiezan por esa letra, pero cuando selecciono cualquiera de la lista, no me queda como ComboBox6.Text, por lo que me aparece vacío, y como unico item en la lista, y yo necesito ver la selección.

- Si yo escribo más de una letra, se invierte la escritura, asi:
* si escribo la letra "L" me aparecen todos los que empiezan por "L", pero supongamos que quiero los que empiezan con "LA", como ser Laura, Lautaro, etc. se me invierte la escritura, osea, escribo "L" seguido de eso la "A", pero me lo toma "AL" y asi suscesivamente, asumo que es porque utilizo el evento OnChange, entonces cada vez detecta el cambio.

Como podría hacerlo? se entiende lo que quiero hacer? Es un simple ComboBox que se rellene con los valores que filtro y que me permita seleccionarlos, la idea es no poner un TButton, sino hacerlo directamente.
Si alguien me puede dar una mano, le estare muy agradecido.

Saludos y Gracias
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
 



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 mostrar la ventana de lenar inten de un combobox en tiempo de un combobox gulder Varios 3 19-05-2007 19:55:58
Combobox personilla Varios 2 05-03-2007 10:14:32
combobox y ado galmacland MS SQL Server 4 18-06-2005 05:24:54
Help Combobox SAKAMOTO Varios 4 18-11-2004 18:02:09
combobox estudiante OOP 2 25-06-2003 21:46:34


La franja horaria es GMT +2. Ahora son las 12:22:41.


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