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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
combobox y autocomplete !!!!!!!!!!!!!!!!!!

tengo un lisbox conla proiedad autocomplete y autodropdown a true.
El usuario escribe y la lista va seleccionando las coincidencias todo bien pero al seleccionarse una y presionar enter la propiedad ItemIndex se pone a -1 o al valor del anterior elemento seleccionado

Deseo conservar el itemindex de la seleccion ¿a que se debe este comportamiento y como podria soluionarlo?

gracias de antemano
Responder Con Cita
  #2  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues se me hace que el problema esta escondido por algún lado, porque a mi me funciona exactamente como mencionas, dejándo el índice del elemento seleccionado al presionar la tecle enter.

__________________

Responder Con Cita
  #3  
Antiguo 19-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
ok mira pon una listbox con 10 elementos:

amarillo
ambar
ameno

luegon button que muestre el indice del elemeto seleccionado enun showmessage

enel combo escribe am, se va a selleccionar amarillo sin terminar de escribir presiona enter
el button deberia mostrar 0 verdad por que el priemero estaba seleccionado pero muestra -1 es decir el avor anterior
a ver prueba
nota.- tengo delphi 6
Responder Con Cita
  #4  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
tienes razón, al utilizarlo en un evento de botón:

Código Delphi [-]
showmessage(inttostr(combobox1.ItemIndex));
muestra otro valor que no es el seleccionado.

Yo lo estaba probando en el evento onchange del combobox:
Código Delphi [-]
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
 label1.Caption := inttostr(combobox1.ItemIndex);
end;

El cuál sí me muestra el número correctamente
__________________

Responder Con Cita
  #5  
Antiguo 19-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
a ver prueba
este código en el evento keypress del combo
Código Delphi [-]
if key = #13 then  label1.Caption := IntToStr(cbo_Producto.ItemIndex)
Responder Con Cita
  #6  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Eso tambien me muestra el número correctamente...
__________________

Responder Con Cita
  #7  
Antiguo 19-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Prueba poniendo esto en el evento OnCloseUp del combo:

Código Delphi [-]
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(ComboBox1.Text);

// Saludos
Responder Con Cita
  #8  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿y si simplemente colocas la propiedad Style en "csDropDownList"?

------------Edito:
maese Roman: !
__________________


Última edición por ContraVeneno fecha: 19-07-2007 a las 00:24:22.
Responder Con Cita
  #9  
Antiguo 19-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
no es lo mismo ya que lo que se requiere es que el user vaya lipeando y se vaya seleccionando las coincidencias y si ya encontro lo que busca presione enter y ya si lo ponemos a csDropDownList solo reconoce la ultima tecla presionada
Responder Con Cita
  #10  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
La última tecla presionada dependiendo del valor que tengas en AutoCompleteDelay

Si esta dentro de ese rango de retardo, el combo sigue buscando letra por letra.

O sea que lo tendrían que ir escribiendo rápido

en fin, creo que con lo que dice Roman es más que suficiente, digo yo.
__________________

Responder Con Cita
  #11  
Antiguo 19-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ContraVeneno
¿y si simplemente colocas la propiedad Style en "csDropDownList"?

------------Edito:
maese Roman: !
Ja, ja. De maese nada, simplemente si el condenado control se niega a selecionar el ítem, pues lo hacemos nosotros mismos

// Saludos
Responder Con Cita
  #12  
Antiguo 19-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
pues usando indexof lo selecionamos pero.. si la lista es muy grande digamos 100 mil entradas que se yo demoraria en ubicarla

de todas maneras podriamos usar el evento keypress
Código Delphi [-]
if Key = #13 then  combo.tag := combo.ItemIndex
y para listas pequeñas seria usando indexof. como sugerencia opino
Responder Con Cita
  #13  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Yo opino que si van a ser incluso más de 100 elementos, lo mejor es utilizar otro tipo de control con una opción de búsqueda.
__________________

Responder Con Cita
  #14  
Antiguo 19-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
Cita:
Empezado por ContraVeneno
La última tecla presionada dependiendo del valor que tengas en AutoCompleteDelay

Si esta dentro de ese rango de retardo, el combo sigue buscando letra por letra.
tengo delphi 6 yn o encuentro AutoCompleteDelay a que te refieres con eso?
Responder Con Cita
  #15  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
a que caray, yo estoy con Delphi 2006
en delphi 10 el combobox tiene esa propiedad.
__________________

Responder Con Cita
  #16  
Antiguo 19-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 18
david_uh Va por buen camino
bueno gracias ya estaba entrando en panico
__________________
Yo se que muchas veces te paso ESTO
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 mostrar la ventana de lenar inten de un combobox en tiempo de un combobox gulder Varios 3 19-05-2007 19:55:58
Combobox molinero1 Varios 2 17-04-2007 12:34:32
Combobox personilla Varios 2 05-03-2007 10:14:32
combobox y ado galmacland MS SQL Server 4 18-06-2005 05:24:54
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 09:54:01.


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