Páginas (4):    1 2 3 4   
Shordi   23-06-2022, 12:55
#21
Big Grin Big Grin

No podemos regresar
Harpo   23-06-2022, 17:44
#22
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
Shordi   24-06-2022, 10:40
#23
(23-06-2022, 17:44)Harpo escribió: 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
Pues si lo subes seguro que nos da ideas... Big Grin Big Grin

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
Última modificación: 24-06-2022, 11:15 por Shordi.

No podemos regresar
Harpo   24-06-2022, 20:47
#24
(24-06-2022, 10:40)Shordi escribió:
Cita:
Pues si lo subes seguro que nos da ideas... Big Grin Big Grin

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.
Shordi   23-02-2023, 10:59
#25
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

No podemos regresar
tincho   25-06-2024, 18:28
#26
Hola Shordi:
Estoy usando el control pero me gustaría saber como le puedo agregar el evento change cuando el texto del combobox cambie.

1 Saludo.
Shordi   25-06-2024, 20:26
#27
(23-02-2023, 10:59)Shordi escribió: Hola Shordi:
Estoy usando el control pero me gustaría saber como le puedo agregar el evento change cuando el texto del combobox cambie.

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()

  Comboseek1.List = Split(File.Load("Cities.csv"), "\n")

End

Public Sub Comboseek1_Change()

  Print "ha cambiado"

End

Con cada pulsación de tecla se imprime la cadena en la consola. ¿No te refieres a eso?

No podemos regresar
tincho   25-06-2024, 21:23
#28
(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. Huh

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
Última modificación: 25-06-2024, 21:30 por tincho.

1 Saludo.
Shordi   26-06-2024, 08:56
#29
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. Huh
Corregido. Ahora el foreground afecta sólo al textbox.
Cita: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
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

No podemos regresar
tincho   26-06-2024, 11:05
#30
(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.
Última modificación: 26-06-2024, 11:11 por tincho.

1 Saludo.
Páginas (4):    1 2 3 4   
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.