Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Funcion Para Buscar En Un ComboBox Mientras Se Escribe
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Funcion Para Buscar En Un ComboBox Mientras Se Escribe 
 
Hola, estoy haciendo una función para buscar en un comboBox mientras se escribe, mas o menos funciona, quisiera que se resaltase el texto encontrado, lo hago mediante
  cmbCombo.Select(ipos, Len(cmbCombo.Text) - ipos)

 
pero al restaurar la posición del cursor, el texto seleccionado se quita y no encuentro manera.

La función es

PUBLIC SUB Buscar_Combo(cmbCombo AS ComboBox)
   'Funcion para buscar en un combobox mientras se escribre
  'se puede poner en un modulo y llamar desde  el ComboBox_KeyPress() pasando
  'el combobox como parametro
  
    DIM scad AS String, ipos AS Integer
    DIM aa AS Boolean, idd AS Integer
    DIM SList AS String[]
    ' Si se pulsan teclas de control o el combobox es solo lectura salimos sin hacer nada
     IF Asc(Key.Text) < 32 OR Key.Code = key.Delete OR cmbCombo.ReadOnly THEN RETURN
     ipos = cmbCombo.Pos ' Guardamos la posicion del cursor
        
        scad = Mid(cmbCombo.Text, 1, ipos) 'guardamos como cadena la izquierda del cursor
        
       ' PRINT "scad = " & scad
        SList = cmbCombo.List
        ' bucle para buscar en el combo
            FOR idd = 0 TO cmbCombo.List.Count - 1
                aa = cmbCombo.List[idd] LIKE scad & Key.Text & "*"
                IF aa THEN BREAK ' si hay coincidencia se sale del bucle
            NEXT
            
            IF aa THEN  ' se ha encontrado coincidencia
                STOP EVENT ' cancelar el evento para no insertar la tecla pulsada
                scad &= Key.Text
                Object.Lock(cmbCombo) ' Bloquear el combo para que no dispare el evento Click o Change
                cmbCombo.Text = SList[idd]  ' asignar al combo la coincidencia
                ipos = Len(scad)
                cmbCombo.Select(ipos, Len(cmbCombo.Text) - ipos) ' Seleccionar  la derecha del cursor
                cmbCombo.Pos = ipos ' restaurar el cursor
                ' PRINT "Seleccion = " & cmbCombo.Selection.Text & "longitud = " & ipos
                Object.UNLOCK(cmbCombo) ' desbloquear el combo para que reciba eventos
            ELSE  ' no hay coincidencia
                STOP EVENT ' cancelar el evento para no insertar la tecla pulsada
                scad &= Key.Text
                Object.Lock(cmbCombo) ' Bloquear el combo para que no dispare el evento Click o Change
                cmbCombo.Text = scad
                Object.UNLOCK(cmbCombo) ' desbloquear el combo para que reciba eventos
            ENDIF            
  
END

 



 
angelnu - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Para Buscar En Un ComboBox Mientras Se Escribe 
 
...la mi sugerencia no es una función pero sugeriría esta solución:
Public Sub Form_Open()  
    
  ComboBox1.Tag = 1  
    
End  
    
    
Public Sub ComboBox1_Change()  
    
  With ComboBox1  
    .Text = ComboBox1[.List.Find(String.Left(.Text, .Pos) & "*", gb.Like)].Text  
    .Pos = .Tag  
  End With  
    
End  
    
    
Public Sub ComboBox1_KeyRelease()  
    
  If Key.Code < 127 Then  
    Inc ComboBox1.Tag  
  Else  
    ComboBox1.Tag = ComboBox1.Pos + 1  
  Endif  
    
End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Funcion Verificador De RUT Para CHILE DEATH Aplicaciones/Fragmentos de Código 6 Sabado, 12 Diciembre 2009, 03:06 Ver último mensaje
DEATH
No hay nuevos mensajes Como Buscar En Una Base De Datos Mientras ... pittusa Bases de Datos 1 Jueves, 30 Septiembre 2010, 21:24 Ver último mensaje
techm3
No hay nuevos mensajes Mensaje Mientras Se Esta Ejecutando Una Su... jsbsan General 9 Lunes, 22 Noviembre 2010, 21:04 Ver último mensaje
Cubel
No hay nuevos mensajes Mostrar Lista De Coincidencias En Un Combo... v3ctor Controles/Librerías/Componentes 6 Lunes, 21 Septiembre 2015, 23:59 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron