Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: seba123neo en Enero 03, 2012, 10:00:30 pm
-
Hola, estaba probando a full este control de Leandro, el cual esta muy bueno, ya lo venia usando, pero ahora probandolo con varios datos, salto que tiene como un bug o algo que le falta.
aca estan los pasos para poder ver la falla:
1 - bajarse el ejemplo de la pagina y con ese mismo ejemplo, ejecutar el programa.
2 - en el primer textbox , poner la palabra ABEL, fijarse que mientras vamos escribiendo mas letras la cantidad de registros va disminuyendo, eso esta bien.
3 - luego de la palabra "ABEL" poner alguna letra para que no coincida con nada, por ejemplo una "g", o sea que quedaria "ABELG", con esa palabra no encuentra nada, hasta ahi bien.
4 - luego ir borrando letra por letra, veran que al borrar la "G", vuelven a aparecer los registros, hasta ahi bien, ahora despues sigo borrando y ya no aparece ninguno, y deberian aparecer los mismo que cuando la ingrese por primera ves, ahi esta el tema.
me fije en el codigo y le agrege un rfresh cuando muestra la lista, funciona, pero se pone lento la busqueda.
haber si alguien puede ver algo..
gracias desde ya.
saludos.
-
Seba el problema esta en la funcion CargarArray, una solucion pedorra es "resetearla" asi
Anda a Private Sub WndProc(ByVal bBefore As Boolean, _ la ultima funcion del control y pone
Case WM_CHAR, WM_CLEAR, WM_CLEAR, WM_PASTE, WM_UNDO, WM_CUT
Dim sText As String
If wParam > 0 And wParam < 27 And wParam <> 8 And wParam <> 13 Then Exit Sub
If bBefore Then
If wParam = vbKeyEscape Then
ListHide
bHandled = True
End If
If wParam = vbKeyReturn Then
sText = GetEditText
SendMessage m_hEdit, EM_SETSEL, 0, Len(sText)
ListHide
bHandled = True
End If
Else
If wParam <> vbKeyEscape Or wParam <> vbKeyReturn Then
sText = UCase(GetEditText)
If wParam = vbKeyBack Then CargarArray vbNullString <----- ///////////////////// esta linea
CargarArray sText
-
barbaro, cobein, si funciona, gracias che.
saludos.
-
Actualizado, gracias a los dos.