Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Calcu 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:
(https://i.ibb.co/VTqNW9V/Captura-de-pantalla-2024-03-16-201932.png) (https://imgbb.com/)
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:
?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 ?
-
Arreglado! (para quien le pueda interesar)
No puedo usar el valor del campo recordset directamente.... necesito un objeto...
en vez de:
Do While Not rz.EOF
ucAutoComplete1.List.Add rz!nombre
rz.MoveNext
Loop
Hay que usar:
Dim xnombre As String
Do While Not rz.EOF
xnombre = rz!nombre
ucAutoComplete1.List.Add xnombre
rz.MoveNext
Loop
Gracias !
-
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!
-
último post, prometido :-)
Cambiar en cargarArray:
If Left(sTList, Len(sText)) = sText Then
por esto:
If sTList Like "*" & sText & "*" Then
y en WndProc comentar esto:
' 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
-
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.