Autor Tema: Problema con el control ucAutocomplete  (Leído 164 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Calcu

  • Bytes
  • *
  • Mensajes: 10
  • Reputación: +0/-0
    • Ver Perfil
Problema con el control ucAutocomplete
« en: Marzo 16, 2024, 04:22:11 pm »
Muy buenas a todos.
Acabo de bajarme este control para probarlo, pero tengo un problema... en el ejemplo funciona bien, pero cuando lo quiero poner en mi programa, no consigue funcionar.

Trabajo con un formulario MDI, y el  problema está en que al llegar a "CargarArray" tengo este error:



m_List.count me devuelve 4 (los 4 valores que he cargado de prueba), pero m_List(i) ya no funciona ¿?

porque justo la linea de arriba marca los 4 en el m_list.count y la siguiente tiene ese error ?  por mas que le doy vueltas, no encuentro la razon
Alguna idea?
Gracias!


Edito:

parando cada vez que hago un:    ucauto1.List.Add rz!nombre

veo que si he añadido 3 nombres (Luis, Pedro, Juan), veo que list(1) = juan, list(2) = juan y list(3) = juan.

Cual puede ser la razon para que List en vez de añadir uno (como en el ejemplo del zip original), se repita ¿?


Efectivamente:

Código: [Seleccionar]
?m_List.Count
 3
?m_List(1)
PEDRO
?m_List(2)
PEDRO
?m_List(3)
PEDRO

Y  he cargado 3 totalmente diferentes, está repitiendo el último en todos...

Es algo de la colección ?
« última modificación: Marzo 16, 2024, 06:45:14 pm por Calcu »

Calcu

  • Bytes
  • *
  • Mensajes: 10
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema con el control ucAutocomplete
« Respuesta #1 en: Marzo 16, 2024, 06:50:34 pm »
Arreglado!  (para quien le pueda interesar)

No puedo usar el valor del campo recordset directamente.... necesito un objeto...

en vez de:
Código: [Seleccionar]
Do While Not rz.EOF
    ucAutoComplete1.List.Add rz!nombre
    rz.MoveNext
Loop

Hay que usar:

Código: [Seleccionar]
Dim xnombre As String

Do While Not rz.EOF
    xnombre = rz!nombre
    ucAutoComplete1.List.Add xnombre
    rz.MoveNext
Loop


Gracias !

Calcu

  • Bytes
  • *
  • Mensajes: 10
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema con el control ucAutocomplete
« Respuesta #2 en: Marzo 16, 2024, 07:13:00 pm »
Perdon por el monólogo :-)

Sería muy complicado hacer que en vez de buscar por orden de escritura, buscara por "contiene" ?

Por ejemplo, si tengo un valor buscado de "Pontevedra", que al escribir "ev"  también mostrara esta posibilidad ?

Esto si que ya se me escapa a mis conocimientos, de ahí mi consulta / petición.

Muchas gracias de nuevo!

Calcu

  • Bytes
  • *
  • Mensajes: 10
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema con el control ucAutocomplete
« Respuesta #3 en: Marzo 16, 2024, 07:31:15 pm »
último post, prometido :-)

Cambiar en cargarArray:
Código: [Seleccionar]
If Left(sTList, Len(sText)) = sText Then
por esto:

Código: [Seleccionar]
If sTList Like "*" & sText & "*" Then
y en WndProc comentar esto:

Código: [Seleccionar]
' SendMessage m_hEdit, WM_SETTEXT, 0&, mArray(0)
' SendMessage m_hEdit, EM_SETSEL, Len(sText), Len(mArray(0))

Para que no pinte el resultado en el textbox.


Gracias de nuevo a todos  :P :P

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Problema con el control ucAutocomplete
« Respuesta #4 en: Marzo 18, 2024, 12:01:02 pm »
siempre es buena la auto ayuda, a veces al escribir nuestro problema ayuda a resolverlo. me alegro que lo hayas podido resolver y compartido tu solucion.

Saludos.