ComboSeek: Un combobox que busca en la lista según se escribe - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Controles/Librerías/Componentes (https://gambas-es.org/forum-7.html) +--- Tema: ComboSeek: Un combobox que busca en la lista según se escribe (/thread-922.html) |
RE: ComboSeek: Un combobox que busca en la lista según se escribe - Shordi - 23-06-2022 RE: ComboSeek: Un combobox que busca en la lista según se escribe - Harpo - 23-06-2022 Saludos, llevaba un tiempo sin poder entrar en el foro y me alegra que esté animado. Gracias Shordi, un control interesante. En su día intenté algo parecido para trabajar con datos referenciados a una tabla auxiliar, pero desistí de usar el control ComboBox. Al final me decanté por un ButtonBox, y en vez de un Array usé un Collection para poder almacenar el texto y el código. Mi control funciona algo distinto del suyo, completa el texto que se está escribiendo y filtra la lista con los item que contienen el texto tecleado. Un saludo, Harpo RE: ComboSeek: Un combobox que busca en la lista según se escribe - Shordi - 24-06-2022 (23-06-2022, 17:44)Harpo escribió: Saludos, llevaba un tiempo sin poder entrar en el foro y me alegra que esté animado.Pues si lo subes seguro que nos da ideas... Una pequeña modificación le he hecho hoy: Al pulsar la tecla escape con la lista desplegada, se restaura el valor que había en el textbox en el momento de obtener el foco. Esto es así por si has olvidado qué valor tenía antes de ponerte a buscar por la lista y no quieres añadir ninguno de los que hay y dejarlo como estaba.. Lo tenéis en https://gitlab.com/shordi/ComboSeek Saludos RE: ComboSeek: Un combobox que busca en la lista según se escribe - Harpo - 24-06-2022 (24-06-2022, 10:40)Shordi escribió:Cita:Pues si lo subes seguro que nos da ideas... Lo subiré, a ver si mañana saco un rato. Lo único curioso del control es que encontré la manera de que no se cerrara la lista cuando esta recibía el foco. RE: ComboSeek: Un combobox que busca en la lista según se escribe - Shordi - 23-02-2023 He subido una nueva versión que corrige un pequeño bug al gitlab. Por si a alguien interesa. Versión actual 0.1.6 Saludos RE: ComboSeek: Un combobox que busca en la lista según se escribe - tincho - 25-06-2024 Hola Shordi: Estoy usando el control pero me gustaría saber como le puedo agregar el evento change cuando el texto del combobox cambie. RE: ComboSeek: Un combobox que busca en la lista según se escribe - Shordi - 25-06-2024 (23-02-2023, 10:59)Shordi escribió: Hola Shordi: No entiendo la pregunta. El Evento Change funciona como siempre. Coloca este código en el formulario fTest del código fuente: Hola Shordi: Código: Public Sub Form_Open() Con cada pulsación de tecla se imprime la cadena en la consola. ¿No te refieres a eso? RE: ComboSeek: Un combobox que busca en la lista según se escribe - tincho - 25-06-2024 (25-06-2024, 20:26)Shordi escribió: No entiendo la pregunta. El Evento Change funciona como siempre. Coloca este código en el formulario fTest del código fuente: Hola Shordi:Correcto, error mio. Resulta que escribí mal el nombre del evento, me equivoque en una letra y listo no funcionaba,no fua hasta que hice un programa de estudio que me di cuenta. Ahora es otro el "problema", resulta que cambio en un formulario los datos y con una funcion verifico si el dato del textbox y el de la base de datos son diferentes y si lo son, le cambio el foreground a rojo oscuro pero lo que cambia es el desplegable y no el textbox. Luego esto viene de pedido de característica: ¿Podrias cambiarlo para que al escribir se filtren los elementos de la lista y que no se seleccione automáticamente? Que sea el usuario el que seleccione una de las opciones o que si nada coincide que se quede lo escrito en el texto RE: ComboSeek: Un combobox que busca en la lista según se escribe - Shordi - 26-06-2024 Cita:Ahora es otro el "problema", resulta que cambio en un formulario los datos y con una funcion verifico si el dato del textbox y el de la base de datos son diferentes y si lo son, le cambio el foreground a rojo oscuro pero lo que cambia es el desplegable y no el textbox.Corregido. Ahora el foreground afecta sólo al textbox. Cita:Luego esto viene de pedido de característica:Lo del filtrado se podría hacer, pero no es algo sencillo por cuanto todo el sistema interno de búsquedas y refrescos habría que reescribirlo. Por otra parte no se si es un comportamiento adecuado porque una cosa es ubicarte en las posibles opciones y otra cosa es perder de vista aquello que no coincida con lo que has tecleado. Eso puede generar, si el control no es ReadOnly, creación de duplicados y pérdidas de tiempo grandes... Si te interesa mucho puedo darle una vuelta, pero yo me plantearía ese comportamiento con un "Ususaurio" detrás de el teclado. Saludos RE: ComboSeek: Un combobox que busca en la lista según se escribe - tincho - 26-06-2024 (26-06-2024, 08:56)Shordi escribió: Si te interesa mucho puedo darle una vuelta, pero yo me plantearía ese comportamiento con un "Ususaurio" detrás de el teclado. Si, me interesa bastante el tema. Te cuento como es el flujo de los datos con un combobox normal: Al crear el control de forma dinámica le asigno la propiedad ReadOnly=True y le paso la lista de valores y el valor del texto que muestra , por supuesto el texto existe en la lista. Luego el usuario selecciona algo de la lista y caso cerrado. Los problemas surgen cuando la cantidad de items de la lista supera cierta cantidad y la lista popup del combobox se hace kilométrica. Es aquí donde entra un control como el combobox readonly=false, es decir se puede escribir en el textbox pero solo para filtrar y si no hay coincidencias la lista tiene 0 items. En este punto se pueden hacer dos cosas, agregar lo que se escribió a la tabla foránea o no. Me estoy planteando usar un formulario secundario para hacer la búsqueda y luego pasar el valor al control que puede ser un textbox directamente o un label. La idea es que en esos lugares se escoja un valor y no se agreguen nuevos (pero es cómodo agregar directamente lo que "falta" claro que eso solo lo pueden hacer ciertos usuarios con nivel de acceso "admin") Viste como trabaja el DateBox ? bueno algo asi pero que permita filtrar datos de una lista y luego al seleccionar uno asignarlo al texto del textbox o al cancelar dejar el que estaba antes. |