Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejemplo De Busqueda En Un Listbox, Letra A Letra
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejemplo De Busqueda En Un Listbox, Letra A Letra 
 
Hola!.

Este ejemplo es un parecido al que encontré en la comunidad francesa.
Pero no es exactamente igual.

En este ejemplo, tenemos una lista de las funciones del basic de Zx Spectrum.
Si escribimos directamente, letra a letra, estas van apareciendo en la etiqueta, formando una palabra.

Esta palabra se busca en la lista y se sitúa en ella si existe. Si usamos la tecla retroceso, se va eliminando
por la derecha una letra de la palabra formada.Cuando la longitud de la palabra es cero, desaparece
la selección de la lista.

Luego también tenemos la caja de texto en la que escribimos directamente la palabra a buscar.

Código:

' gambas class file

Private palabra As String

Public Sub _new()
  
End

Public Sub Form_Open()
  
  Me.Center
  Me.Caption = "BASIC SINCLAIR"
  'Llenamos la lista
  llenarlista(lstLista)
  palabra = ""
  
End

Public Sub llenarlista(lista As ListBox)
  
  With lista
    .Add("ABS")
    .Add("ACS")
    .Add("AND")
    .Add("ASN")
    .Add("AT")
    .Add("ATN")
    .Add("ATTR")
    .Add("BEEP")    
    .Add("BIN")
    .Add("BORDER")
    .Add("BRIGHT")
    .Add("CAT")
    .Add("CHR$")
    .Add("CIRCLE")
    .Add("CLEAR")
    .Add("CLOSE#")
    .Add("CLS")
    .Add("CODE")
    .Add("CONT")
    .Add("COPY")
    .Add("COS")
    .Add("DATA")
    .Add("DEF FN")
    .Add("DIM")
    .Add("DRAW")
    .Add("ERASE")
    .Add("EXP")
    .Add("FLASH")
    .Add("FN")
    .Add("FOR")
    .Add("FORMAT")
    .Add("GOSUB")
    .Add("GOTO")
    .Add("IF")
    .Add("IN")
    .Add("INK")  
    .Add("INKEY$")
    .Add("INPUT")
    .Add("INT")
    .Add("INVERSE")
    .Add("LEN")
    .Add("LET")
    .Add("LINE")
    .Add("LIST")
    .Add("LLIST")
    .Add("LN")
    .Add("LPRINT")
    .Add("MERGE")
    .Add("MOVE")
    .Add("NEW")
    .Add("NEXT")
    .Add("NOT")
    .Add("OPEN#")
    .Add("OR")
    .Add("OUT")
    .Add("OVER")
    .Add("PAPER")
    .Add("PAUSE")
    .Add("PEEK")
    .Add("PI")
    .Add("PLOT")
    .Add("POINT")
    .Add("POKE")
    .Add("PRINT")
    .Add("RANDOMIZE")
    .Add("READ")
    .Add("REM")
    .Add("RESTORE")
    .Add("RETURN")
    .Add("RND")
    .Add("RUN")
    .Add("SAVE")
    .Add("SCREEN$")
    .Add("SGN")
    .Add("SIN")
    .Add("SQR")
    .Add("STEP")
    .Add("STOP")
    .Add("STR$")
    .Add("TAB")
    .Add("TAN")
    .Add("THEN")
    .Add("TO")
    .Add("USR")
    .Add("VAL")
    .Add("VAL$")
    .Add("VERIFY")    
  End With    
  
  lista.Sorted = True
  
End

Public Sub txtNombre_KeyRelease()
  
  Dim x As Integer
  
  If Key.Code <> Key.BackSpace And lstLista.Count <> 0 Then      
    For x = 0 To lstLista.Count - 1    
      If InStr(Left(UCase(lstLista[x].Text), Len(txtNombre.Text)), UCase(txtNombre.Text)) <> 0 Then
        lstLista.Index = x          
        Return      
      Endif      
    Next
  Else
    If Len(txtNombre.Text) = 0 Then lstLista.Index = -1    
    Return
  Endif
  
End

Public Sub lstLista_KeyRelease()
  
  Dim x As Integer
  
  'Si la lista contiene más de un elemento  
  If lstLista.Count > 1 Then                                                          
    'Si la tecla retroceso es pulsada
    Select Case (Key.Code)                                                            
      Case Key.BackSpace
        'Eliminamos una letra de la variable palabra
        palabra = Left(palabra, Len(palabra) - 1)                                      
      Case Else
        'Añadimos una letra a la variable palabra
        palabra &= Chr$(Key.Code)                                                      
    End Select
    'Mostramos en la etiqueta el contenido de la variable palabra
    lbpalabra.Text = palabra                                                          
    If Len(palabra) = 0 Then                                                          
      'Si la longitud de la palabra es 0, no selecciones ningún elemento.
      lstLista.Index = -1
      Return
    Endif
    For x = 0 To lstLista.Count - 1    
      'Si la subcadena se encuentra en la cadena
      If InStr(Left(UCase(lstLista[x].Text), Len(palabra)), UCase(palabra)) <> 0 Then  
        'Situate en el elemento x de la lista
        lstLista.Index = x                                                            
        Return      
      Endif      
    Next
  Else
    'Lista vacia
    Message.Info("No existen elementos en la lista")                                  
    Return
  Endif  
  
End

Public Sub btnSalir_Click()

  Me.Close

End

 


La idea es crear como un diccionario de estas palabras, con la función que hacían.
El formato de la instrucción,distribución en el teclado,etc.

Otra posibilidad es que esa lista este en un array, a la hora de escribir la palabra en un "posible" editor, aparezca la palabra directamente sin apenas escribirla.
¿ Que por que lo de Spectrum ?, Ah, es que soy un nostálgico de esas maquinas y como la lista era un poco larga.

Comentar que el evento KeyRelease, me fue mejor que el KeyPress.

Según parece el primer elemento que se coloca en el formulario es el que tiene el foco.Por eso el Listbox responde nada mas pulsar una tecla.

Y el código fuente.

Saludos

BuscarEnLista.tar.gz
Descripción:  
Descargar
Nombre del archivo: BuscarEnLista.tar.gz
Tamaño: 7.77 KB
Descargado: 86 veces
BuscarEnLista.tar.gz
Descripción:  
Descargar
Nombre del archivo: BuscarEnLista.tar.gz
Tamaño: 7.77 KB
Descargado: 86 veces
BuscarEnLista.tar.gz
Descripción:  
Descargar
Nombre del archivo: BuscarEnLista.tar.gz
Tamaño: 7.77 KB
Descargado: 86 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 24 Febrero 2013, 11:19; editado 4 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo De Busqueda En Un Listbox, Letra A Letra 
 
asi no porque el gridview esta conectado ala base de datos, lo que yo quiero es que al yo escribir en el textbox los nombre de vallan buscando un el data gridview
 



 
reyes - 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 Seleccionar Letra De TextBox kotonfree General 10 Jueves, 07 Abril 2011, 21:05 Ver último mensaje
jguardon
No hay nuevos mensajes Número O Letra Shell General 9 Lunes, 12 Octobre 2015, 10:16 Ver último mensaje
vuott
No hay nuevos mensajes Validacion De Letra Ñ yireh General 1 Martes, 19 Abril 2016, 08:45 Ver último mensaje
vuott
No hay nuevos mensajes Problemas Con La Letra Ñ gones Bases de Datos 1 Viernes, 05 Julio 2019, 13:16 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 0 invitados
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